erstmal die funktion gekürzt auf eine spherenseite (front):
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN]
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
For ih=0 To sps-1 For iv=0 To sps-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()) 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()) 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()) 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()) AddTriangle(surface,v1,v3,v2) AddTriangle(surface,v2,v3,v4) Next Next
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...
|