Vertexe zweier Meshes verbinden

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

StarGazer

Betreff: Vertexe zweier Meshes verbinden

BeitragFr, Feb 23, 2007 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
gibt es eine Möglicheite Vertexe verschmletzen zu lassen ?
Ich meine ZB wenn zwei Vierecke nebeneinander liegen, und man die Vertexe die genau auf der gleichen Position liegen mit einander verbinde möchte, so dass dann das Vertexshading smooth überläuft ohne das Schnittkanten entstehen ?.
Ich möchte ein Gebilde aus verschiedenen Objekten zusammen bauen, und naher dann die Vertexe an den Rändern die sich berühren, verbinden, so dass dann das Vertexshading smooth rüberläuft. Mit AddMesh reicht es ja alleine nicht.

Hoffe es ist möglich und jemand kann mir helfen.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Feb 23, 2007 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kannst du auch faken:
ql:VertexNormal für die schattierung
ql:VertexTexCoords für die textur.

StarGazer

BeitragSa, Feb 24, 2007 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke,

habs nun auch hingekriegt.
Ist aber nicht so simpel, man muß schon darauf achten das alle Vertexe die auf einer Position liegen immer die selben NormalCoordinaten erhalten, sonst kommt es trotzdem zu Schnittkanten.

Für alle die es interessiert hier der Code. Jetzt muß man nur noch eine intelligende Lösung finden das die Vertexe auf einer Position nicht nur den gleichen Wert erhalten, sondern auch den sinvollsten Wert nehmen, sonst kommt es dennoch zu falschen Beleuchtung oder mal keiner Smile



Code: [AUSKLAPPEN]
Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

camera=CreateCamera()
CameraClsColor camera,64,64,96
RotateEntity camera,-55,0,0
MoveEntity camera, 0,0,-10

light=CreateLight()
RotateEntity light,60,50,0


;------------------------
; Erste Reihe
quad% = CreateMesh()
surface% = CreateSurface(quad%)
AddVertex(surface,-1, 1,0, -1,1)
AddVertex(surface, 1, 1,0,  1,1)
AddVertex(surface,-1,-1,0, -1,-1)
AddVertex(surface, 1,-1,0,  1,-1)
AddTriangle surface,1,3,2
AddTriangle surface,0,1,2
   
   ;------------------------
   mesh% = CopyMesh% (quad%)
   PositionEntity mesh%, 2,0,0
   surface% = GetSurface(mesh%,1)   
   VertexCoords surface,1 ,1,1 ,-2
   VertexNormal surface,1, 1,1 ,-2
   VertexCoords surface,3 ,1,-1,-2   
   VertexNormal surface,3, 1,-1,-2
      
      ;------------------------
      mesh% = CopyMesh% (quad%)
      PositionEntity mesh%, 4,0,-2
      surface% = GetSurface(mesh%,1)      
      VertexNormal surface,0,1, 1,-2
      VertexNormal surface,2,1,-1,-2
      VertexNormal surface,3,1, 1,-2
   

      
;------------------------
; Zweite Reihe
mesh% = CopyMesh% (quad%)
PositionEntity mesh%, 0,-2,0
   
   ;------------------------
   mesh% = CopyMesh% (quad%)
   PositionEntity mesh%, 2,-2,0
   surface% = GetSurface(mesh%,1)   
   VertexCoords surface,1 ,1,1 ,-2
   VertexNormal surface,1,1,-1,-2   
      
      ;------------------------
      mesh% = CopyMesh% (quad%)
      PositionEntity mesh%, 4,-2,0
      surface% = GetSurface(mesh%,1)
      VertexCoords surface,0, -1, 1,-2
      VertexNormal surface,0,  1,-1,-2
      VertexCoords surface,1,  1, 1,-2
      VertexNormal surface,1,  1, 1,-2




;WireFrame 1

While Not KeyHit(1)

   RenderWorld

   Flip
Wend
End

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group