Problem mit Sphere aus Quads

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Moses

Betreff: Problem mit Sphere aus Quads

BeitragSa, Dez 18, 2004 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
erstmal die funktion gekürzt auf eine spherenseite (front):

BlitzBasic: [AUSKLAPPEN]

;---------------------------------------------------
;-- CreateQuadSphere([segments per site][,parent])--
;---------------------------------------------------

Function CreateQuadSphere(sps%,parent=0)
Local vx#,vy#,vz#,ih%,iv%,v1,v2,v3,quaside#,brush,mesh,surface


brush = CreateBrush(255,255,255)
mesh = CreateMesh(parent)
surface = CreateSurface(mesh,brush)
quadside# = 1.0/sps
; vertexorder:
;
; 1--3
; | |
; 2--4
;
; t1:132 t2:234
;front
For ih=0 To sps-1
For iv=0 To sps-1
;calculate vertexes
;vertex 1
vx#= -0.5 + quadside * ih
vy#= +0.5 - quadside * iv
vz#= -0.5
TFormNormal vx, vy, vz, 0, 0
v1 = AddVertex(surface, 0.5 * TFormedX(), 0.5 * TFormedY(), 0.5 * TFormedZ())
;vertex 2
vx = -0.5 + quadside * ih
vy = +0.5 - quadside * (iv+1)
vz = -0.5
TFormNormal vx, vy, vz, 0, 0
v2 = AddVertex(surface, 0.5 * TFormedX(), 0.5 * TFormedY(), 0.5 * TFormedZ())
;vertex 3
vx = -0.5 + quadside * (ih+1)
vy = +0.5 - quadside * iv
vz = -0.5
TFormNormal vx, vy, vz, 0, 0
v3 = AddVertex(surface, 0.5 * TFormedX(), 0.5 * TFormedY(), 0.5 * TFormedZ())
;vertex 4
vx = -0.5 + quadside * (ih+1)
vy = +0.5 - quadside * (iv+1)
vz = -0.5
TFormNormal vx, vy, vz, 0, 0
v4 = AddVertex(surface, 0.5 * TFormedX(), 0.5 * TFormedY(), 0.5 * TFormedZ())
;add triangles
AddTriangle(surface,v1,v3,v2)
AddTriangle(surface,v2,v3,v4)
Next
Next
;back
;...
;left
;...
;right
;...
;top
;...
;bottom
;...
UpdateNormals mesh
Return mesh
End Function


problem dabei ist, dass sich die 'quads' zu den aussenkanten einer seite sehr stauchen wie krieg ich das am besten weg, soll heissen die 'quads' sollen möglichst 'gleich gross' in bezug gauf ihren flächeninhalt sein...

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group