surfaces bemalen problem...

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

FreakForFreedom

Betreff: surfaces bemalen problem...

BeitragSo, Jan 16, 2005 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute!

Ich versuche mich seit neulich an einem 3d-tile-Ed... soweit klappt auch alles, bis auf dass wenn ich eine tile bemalen will, mit einer textur, dann wird die surface irgendwie nur mit der farbe der textur bemalt... von den feinheiten in der textur ist leider nichts zu sehen Sad

Thx für eure Hilfe (im vorraus!^^)
F.F.F.

Code: [AUSKLAPPEN]

;variablen und co

Graphics3D ResX, ResY, 32, 2
SetBuffer BackBuffer()

Global camera = CreateCamera()

Global Edpl_tex = LoadTexture("No Texture.bmp")
Global grass = LoadBrush("grass.bmp")
Global stone = LoadBrush("stone.bmp")
Global moss  = LoadBrush("mossy.jpg")
Global water = LoadBrush("water.bmp")

For z = 1 To 30 Step 2
   For zz = 1 To 30 Step 2
      AddTile(z,0,zz,1,0,1)
   Next
Next

While Not KeyHit(1)

If MouseHit(1) Then   
   e = CameraPick(camera,MouseX(),MouseY())
   Addtexture()
EndIf

UserInput()

UpdateWorld()
RenderWorld()

WireFrame 0

Text 20, 20, TrisRendered()
Text 20, 30, "tile_sel = "+tile_sel

Flip
Wend
End

Function AddTexture()

For t.tile = Each tile
If PickedEntity() = t.tile\model Then
   Select tile_sel
      Case 1
         PaintEntity t.tile\model,grass
      Case 2
         PaintEntity t.tile\model,stone
      Case 3
         PaintEntity t.tile\model,moss
      Case 4
         PaintEntity t.tile\model,water
   End Select
End If   
Next   

End Function

Function AddTile(x#, y#, z# ,lengthoftile, heightoftile, widthoftile)
   
   t.tile = New tile
   
   t.tile\model = CreateMesh()
   tiler = CreateSurface(t.tile\model)
   
   If heightoftile=0
      t1 = AddVertex(tiler, 0,0,0)
      t2 = AddVertex(tiler, 0,0,(lengthoftile * gridheight))
      t3 = AddVertex(tiler, (widthoftile * gridwidth), 0,0)
      t4 = AddVertex(tiler, (widthoftile * gridwidth), 0, (lengthoftile * gridheight))
   
      v1 = AddTriangle(tiler, t1,t2,t3)
      v2 = AddTriangle(tiler, t2,t4,t3)
   Else
      t1 = AddVertex(tiler, 0,0,0)
      t2 = AddVertex(tiler, 0,0,(lengthoftile * gridheight))
      t3 = AddVertex(tiler, (widthoftile * gridwidth), 0,0)
      t4 = AddVertex(tiler, (widthoftile * gridwidth), 0, (lengthoftile * gridheight))
      t5 = AddVertex(tiler, 0, (heightoftile * gridheight), 0)   
      t6 = AddVertex(tiler, 0, (heightoftile * gridheight), (lengthoftile * gridheight))
      t7 = AddVertex(tiler, (widthoftile * gridwidth), (heightoftile * gridheight), 0)
      t8 = AddVertex(tiler, (widthoftile * gridwidth), (heightoftile * gridheight), (lengthoftile * gridheight))
      
      v1  = AddTriangle(tiler, t1,t3,t2)
      v2  = AddTriangle(tiler, t3,t4,t2)
      v3  = AddTriangle(tiler, t1,t5,t3)
      v4  = AddTriangle(tiler, t5,t7,t3)
      v5  = AddTriangle(tiler, t5,t6,t7)
      v6  = AddTriangle(tiler, t6,t8,t7)
      v7  = AddTriangle(tiler, t3,t7,t4)
      v8  = AddTriangle(tiler, t7,t8,t4)
      v9  = AddTriangle(tiler, t1,t2,t5)
      v10 = AddTriangle(tiler, t2,t6,t5)
      v11 = AddTriangle(tiler, t2,t4,t6)
      v12 = AddTriangle(tiler, t4,t8,t6)
   EndIf
   
   ScaleEntity t.tile\model,.05,.05,.05
   
   EntityTexture t.tile\model,Edpl_tex
   
   PositionEntity t.tile\model, x, y, z
   
   EntityRadius t.tile\model,1
   EntityPickMode t.tile\model,2
   
End Function


Function UserInput()

; Keyhit's and co :)

If KeyDown(2) Then tile_sel = 1
If KeyDown(3) Then tile_sel = 2
If KeyDown(4) Then tile_sel = 3
If KeyDown(5) Then tile_sel = 4

End Function
Mfg
F.F.F.
"Try and ERROR!"
 

BIG BUG

BeitragSo, Jan 16, 2005 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist, dass Du noch keine UV-Koordinaten vergeben hast(die letzten 3 optionalen Parameter bei AddVertex).

Bei einem Viereck könnten die Korrdinaten so aussehen:
Code: [AUSKLAPPEN]

Vertex1(0,0)         Vertex2(1,0)


Vertex3(0,1)         Vertex4(1,1)
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

lettorTrepuS

BeitragSo, Jan 16, 2005 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

FreakForFreedom

BeitragSo, Jan 16, 2005 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@Big Bug: Cool danke dir! Das war der Fehler!

@ShadowTurtle: wieso sollte ich mehrere Layer benutzten? Wäre net von dir, wenn du mir das noch erklären könntest...

Mfg,
F.F.F.
Mfg
F.F.F.
"Try and ERROR!"
 

lettorTrepuS

BeitragSo, Jan 16, 2005 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

FreakForFreedom

BeitragSo, Jan 16, 2005 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso, ok ich werd deinen Rat befolgen, danke auf jeden Fall!

Mfg,
F.F.F.
Mfg
F.F.F.
"Try and ERROR!"

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group