Ich experimentiere grad mit Terrain und TexturLayers
Zum Testen habe ich einige Zeilen in das Terrain Example eingefügt.
Was ich erreichen wollte, war ein Skalieren der Detailtexture mittels Numpad_1 und Numpad_2
Editiert: Mittlerweile habe ich noch Skalieren der Basis Texture Layer 0 eingefügt (Numpad_4 und Numpad_5) und es zeigt sich, daß bei beidem das Gleiche passiert - nur Layer 0 wird skaliert - anscheinend ein Bug.
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Terrain
;
; (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;
#CameraSpeed = 5
IncludeFile "Screen3DRequester.pb"
DefType.f KeyX, KeyY, MouseX, MouseY, texscale0, texscale1
If InitEngine3D()
Add3DArchive("Data\" , #PB_3DArchive_FileSystem)
Add3DArchive("Data\Skybox.zip", #PB_3DArchive_Zip)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
AmbientColor(RGB(255,255,255))
CreateMaterial (0, LoadTexture(0, "Terrain_Texture.jpg"))
AddMaterialLayer(0, LoadTexture(1, "Terrain_Detail.jpg"), 1 )
texscale0=1.0
texscale1=1.0
CreateTerrain("Terrain.png", MaterialID(0), 4, 0.6, 4, 4)
CreateCamera(0, 0, 0, 100, 100)
CameraRange(0,0.01,6000)
CameraLocate(0, 128, 25, 128)
SkyDome("Clouds.jpg",10)
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = #CameraSpeed
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = #CameraSpeed
Else
KeyY = 0
EndIf
If KeyboardPushed(#pb_key_pad1)
texscale1=texscale1-0.001
ScaleMaterial(0,texscale1, texscale1, 1) ;hier 1 für Detail Layer
EndIf
If KeyboardPushed(#pb_key_pad2)
texscale1=texscale1+0.001
ScaleMaterial(0,texscale1, texscale1, 1) ;hier 1 für Detail Layer
EndIf
If KeyboardPushed(#pb_key_pad4)
texscale0=texscale0-0.001
ScaleMaterial(0,texscale0, texscale0, 0) ;hier 0 für Basis Layer
EndIf
If KeyboardPushed(#pb_key_pad5)
texscale0=texscale0+0.001
ScaleMaterial(0,texscale0, texscale0, 0) ;hier 0 für Basis Layer
EndIf
EndIf
If ExamineMouse()
MouseX = -(MouseDeltaX()/2)*#CameraSpeed/2
MouseY = -(MouseDeltaY()/2)*#CameraSpeed/2
EndIf
Height.f = TerrainHeight(CameraX(0), CameraZ(0))
RotateCamera(0, MouseX, MouseY, RollZ)
MoveCamera (0, KeyX, -CameraY(0)+Height+8, KeyY)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
Scheint also ein Bug zu sein