Texture -> Brush -> Surface -> Mesh
Übersicht

![]() |
tixBetreff: Texture -> Brush -> Surface -> Mesh |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
ich beschäftige mich aktuell mal wieder mit b3d komme eig aus der b+ ecke ^^ im zuge meiner experimente komm ich einfach nich zu lösung also ich versuche ein mesh über add vertexe/triangles zu erstellen und dann den surfaces per brush jeweils ne andere textur zu verpassen ich glaub ich hab alle möglichen kombinationen die befehle zu benutzen aus probiert ^^ aber das hat alles nichts genützt irwas fehlt oder so das is jez nur die letzte gespeicherte version hab natürlich auch paintsurface .. probiert ... das einzige was ich mir noch vorstellen kann das die reihenfolge der befehle falsch ist derartige "fehler" hat ich schon mehr als genug ^^ wäre echt cool wenn jemand blitzartig das auflösen könnte ^^ ich hab den code mal aufs wesentliche reduziert die textur selbst ist ja wurst hab eine 256x256er genommen der name der textur ist "stone.png" ihr könnt ja ne andere nehmen start.bb Code: [AUSKLAPPEN] Graphics3D 800,600
SetBuffer BackBuffer() AmbientLight 125,125,125 Include "models.bb" Global god=CreateCamera() PositionEntity god,0,25,0 TurnEntity god,90,0,0 ;begin main Global fliptime Global time Global ende=False While ende=False UpdateWorld RenderWorld ;begin textzone Text 10,10,MilliSecs()-time ;end textzone ;begin flip If ftime<MilliSecs()-15 Then Flip fliptime=MilliSecs() End If time=MilliSecs() ;end flip ;begin input action If KeyHit(1) Then ende=True Wend models.bb Code: [AUSKLAPPEN] Function addplate(surf,x,z,d,a=0,b=1) Select a Case 1 ap0=b ap1=b Case 2 ap1=b ap2=b Case 3 ap2=b ap3=b Case 4 ap0=b ap3=b End Select v=CountVertices(surf) AddVertex surf,x,ap0,z AddVertex surf,x,ap1,z+d AddVertex surf,x+d,ap2,z+d AddVertex surf,x+d,ap3,z AddTriangle surf,v,v+1,v+2 AddTriangle surf,v,v+2,v+3 End Function Global tex1=LoadTexture("stone.png",1) ScaleTexture tex1,0.1,0.1 TextureBlend tex1,2 TextureCoords tex1,1 Global ground=CreateMesh() Global brush1=CreateBrush() BrushTexture brush1,tex1,0,7 BrushColor brush1,155,155,255 Global ground_surf1=CreateSurface(ground,brush1) Global brush2=CreateBrush() BrushColor brush2,255,155,155 Global ground_surf2=CreateSurface(ground,brush2) ;PaintSurface ground_surf1,brush1 ;PaintSurface ground_surf2,brush2 For i=0 To 5 addplate(ground_surf1,-6+i*4,2,2) addplate(ground_surf2,-4+i*4,2,2) addplate(ground_surf2,-6+i*4,0,2) addplate(ground_surf1,-4+i*4,0,2) addplate(ground_surf1,-8-i*2,1,1) addplate(ground_surf2,-7-i*2,1,1) addplate(ground_surf2,-8-i*2,0,1) addplate(ground_surf1,-7-i*2,0,1) Next addplate(ground_surf1,-4,-4,4,4) addplate(ground_surf2,0,-4,4,4) addplate(ground_surf2,-4,-8,4,2) addplate(ground_surf1,0,-8,4,2) UpdateNormals ground EntityType ground,2 |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit den Surfaces funktioniert schon. Nur gibst du den Vertices bei AddVertex![]() Weiß nicht, ob dir UV-Koordinaten was sagen. Du ordnest dabei jedem Punkt eine U- und V-Koordinate zwischen 0.0 und 1.0 zu, wobei 0.0,0.0 der oberen linken Ecke deiner Textur entspricht und 1.0,1.0 der unteren rechten Ecke. (btw. könntest du den Code ruhig mal sinnvoller einrücken... War für mich sehr schwer, mich darin zurechtzufinden. Auch ist es meistens sauberer, keinen Code direkt in Includes auszuführen, sondern den Code in eine Funktion in der eingebundenen Datei zu packen und dann diese Funktion vom einbindenden Programm aus aufzurufen.) |
||
MrKeks.net |
![]() |
tix |
![]() Antworten mit Zitat ![]() |
---|---|---|
joa geht schon so einiger massen ^^
danke für den optionalen tip ![]() naja muss wohl noch bisl daran basteln gespiegelte und zur seite gefallene texturen ![]() und das alles für ein würfelähnliches dings ^^ Code: [AUSKLAPPEN] Function addwallplate(surf,x#,y#,z#,d#,a=0,b=0)
For k#=0 To 9 For i#=0 To 9 v=CountVertices(surf) Select b Case 0 ;bottom/top AddVertex surf,x+i*d, y, z+k*d, 0.1*i, 0.1*k AddVertex surf,x+i*d, y, z+k*d+d, 0.1*i, 0.1*(k+1) AddVertex surf,x+i*d+d, y, z+k*d+d, 0.1*(i+1), 0.1*(k+1) AddVertex surf,x+i*d+d, y, z+k*d, 0.1*(i+1), 0.1*k Case 1 ;right/left AddVertex surf,x+i*d, y+10*d-k*d, z, 0.1*i, 0.1*k AddVertex surf,x+i*d, y+10*d-k*d-d, z, 0.1*i, 0.1*(k+1) AddVertex surf,x+i*d+d, y+10*d-k*d-d, z, 0.1*(i+1), 0.1*(k+1) AddVertex surf,x+i*d+d, y+10*d-k*d, z, 0.1*(i+1), 0.1*k Case 2 ;hind/front AddVertex surf,x, y+i*d, z+k*d, 0.1*i, 0.1*k AddVertex surf,x, y+i*d, z+k*d+d, 0.1*i, 0.1*(k+1) AddVertex surf,x, y+i*d+d, z+k*d+d, 0.1*(i+1), 0.1*(k+1) AddVertex surf,x, y+i*d+d, z+k*d, 0.1*(i+1), 0.1*k End Select Select a Case 0 AddTriangle surf,v,v+1,v+2 AddTriangle surf,v,v+2,v+3 Case 1 AddTriangle surf,v+2,v+1,v AddTriangle surf,v+3,v+2,v End Select Next Next End Function |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group