Texture alpha avec la 4.70
Publié : jeu. 02/août/2012 22:53
pouvez vous tester ce code et me dire s'il fonctionne correctement avec la version 4.70 ? Il faut l'enregistrer dans votre répertoire PureBasic /Examples/3D
Vous devriez voir 3 cubes avec un trou sur les faces , vive les textures Alpha qui permettent ce genre de fantaisie
[EDIT]
J'ai testé avec une carte NVIDIA sous Windows, et je me demande si ça fonctionne aussi avec une carte ATI ou sous Linux ou OS X ?
Vous devriez voir 3 cubes avec un trou sur les faces , vive les textures Alpha qui permettent ce genre de fantaisie

[EDIT]
J'ai testé avec une carte NVIDIA sous Windows, et je me demande si ça fonctionne aussi avec une carte ATI ou sous Linux ou OS X ?
Code : Tout sélectionner
;
; ------------------------------------------------------------
;
; PureBasic - CreateTexture
;
; (c) 2012 - Fantaisie Software
;
; ------------------------------------------------------------
;
#CameraSpeed = 1
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
If InitEngine3D()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Models", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Packs/Desert.zip", #PB_3DArchive_Zip)
Parse3DScripts()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
KeyboardMode(#PB_Keyboard_International)
AmbientColor(RGB(255,255,255))
; Mesh
;
CreateCube(0, 30)
; Texture
;
For i = 0 To 2
Read.i R : Read.i G : Read.i B: Read.i A
Read.f x : Read.f y : Read.f z
CreateTexture(i, 256, 256)
StartDrawing(TextureOutput(i))
DrawingMode(#PB_2DDrawing_AllChannels | #PB_2DDrawing_AlphaBlend)
Box(0, 0, 256, 256, RGBA(0, 0, 0, 255))
Box(4, 4, 248, 248, RGBA(R, G, B, A))
Circle(127, 127, 50, RGBA(0, 0, 0, 0))
StopDrawing()
CreateMaterial(i, TextureID(i))
MaterialBlendingMode(i, #PB_Material_AlphaBlend)
CreateEntity(i, MeshID(0), MaterialID(i), x, y, z)
Next
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 0, -100, 50)
CameraLookAt(0, 0, 0, 1)
; SkyBox
;
SkyBox("desert07.jpg")
Repeat
Screen3DEvents()
If ExamineMouse()
MouseX = -MouseDeltaX() * #CameraSpeed * 0.05
MouseY = -MouseDeltaY() * #CameraSpeed * 0.05
EndIf
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
EndIf
For i = 0 To 2
RotateEntity(i, 1, 1, 2-i, #PB_Relative)
Next
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
MoveCamera (0, KeyX, 0, 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
DataSection
Data.i 255, 0, 0, 127
Data.f -10, 0, 5
Data.i 0, 0, 255, 127
Data.f 10, 0, 5
Data.i 0, 255, 0, 127
Data.f 0, 0, -5
EndDataSection