j'ai fais un petit code pour trouver le probleme avec les shader opengl
- dans les options de compilation : mettez 'opengl' dans le champ "Bibliotheque sous systeme"
- ligne 99 : mettez le chemin du dossier MaterialScriptsGeneric-2 de la démo paysage-v6
et postez moi le fichier Ogre.log
merci d'avance
Code : Tout sélectionner
Structure f3
x.f
y.f
z.f
EndStructure
Procedure.f lng3D(*v.f3)
ProcedureReturn Sqr(*V\x * *V\x + *V\y * *V\y + *V\z * *V\z)
EndProcedure
Procedure Norme3D(*V.f3,l.f=1)
Protected.f lm = l / lng3d(*v)
*V\x * lm
*V\y * lm
*V\z * lm
EndProcedure
Procedure.i textureArray2NM(texture,Array hm.l(2),amplitude.f)
Protected i,j,n,dx,dy,h00,h10,h01
Protected.f x,y,z,l, max=255/amplitude,max2=max*max
Protected.f3 p
dx=ArraySize(hm(),2)+1
dy=ArraySize(hm(),1)+1
Dim bmp.l(dy-1,dx-1)
For j=0 To dy-1
For i=0 To dx-1
h00=hm(j,i)
h10=hm(j,(i+1) % dx)
h01=hm((j+1) % dy,i)
p\x=h00-h10
p\y=h00-h01
l=p\x*p\x+p\y*p\y:If l>max2:l=max2:EndIf
p\z=Sqr(max2-l)
Norme3D(p,127)
bmp(j,i)=RGBA(p\z+128,p\y+128,p\x+128,255)
Next
Next
n=CreateTexture(texture,dx,dy):If texture=-1:texture=n:EndIf
StartDrawing(TextureOutput(texture)):CopyMemory(@bmp(0,0),DrawingBuffer(),dx*dy*4):StopDrawing()
ProcedureReturn texture
EndProcedure
Procedure.i textureHM2NM(imgNM,imgHM,amplitude.f)
Protected i,j,dx,dy,c
StartDrawing(TextureOutput(imgHM))
dx=OutputWidth()
dy=OutputHeight()
Dim hm.l(dy-1,dx-1)
Dim bmp.l(dy-1,dx-1)
CopyMemory(DrawingBuffer(),@bmp(0,0),dx*dy*4)
StopDrawing()
For j=0 To dy-1
For i=0 To dx-1
c=bmp(j,i)
hm(j,i)=Red(c)+Green(c)+Blue(c)
Next
Next
ProcedureReturn textureArray2NM(imgNM,hm(),amplitude/3)
EndProcedure
Procedure mesh_samples(num)
Protected i,j,n=32
Protected.f ai,aj,r
Dim t.PB_MeshVertex(n,n)
For j=0 To n
For i=0 To n
With t(i,j)
ai=i/n*2*#PI
aj=j/n*#PI
r=Sin(aj)
\x=-Cos(ai)*r
\z=Sin(ai)*r
\y=Cos(aj)
\u=i/32
\v=j/32
\color=$ffffffff ;<--- !!! required To use these shaders !!!
EndWith
Next
Next
CreateDataMesh(num,t())
NormalizeMesh(num)
EndProcedure
Define i, a.f
InitEngine3D(#PB_Engine3D_DebugLog):InitSprite():InitKeyboard():InitMouse()
ExamineDesktops()
ex=DesktopWidth (0)
ey=DesktopHeight(0)
OpenWindow(0, 0,0, ex,ey, "Test shader OpenGL - [Esc] quit",#PB_Window_Maximize)
OpenWindowedScreen(WindowID(0), 0, 0, ex, ey, 0, 0, 0)
; >>>>>>>>>>> mettre ici le chemin du dossier MaterialScriptsGeneric-2 <<<<<<<<<<<
Add3DArchive(...\MaterialScriptsGeneric-2", #PB_3DArchive_FileSystem )
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
Parse3DScripts()
;--------------------------------------- scene ---------------------------------------
CreateCamera(0, 0, 0, 100, 100):MoveCamera(0,0,4,-2):CameraLookAt(0,0,0,0)
CreateLight(0, $ffffff, 0, 4, 0):SetLightColor(0,#PB_Light_SpecularColor, $ffffff)
AmbientColor($222222)
Fog($ffffff,1,10000,10001); <--- !!! required to use these shaders !!!
mesh_samples(0)
BuildMeshTangents(0)
LoadTexture(0,"MRAMOR6X6.jpg")
textureHM2NM(1,0,8)
GetScriptMaterial(0,"bump")
MaterialTextureAliases(0,TextureID(0),TextureID(1),0,0)
SetMaterialColor(0,#PB_Material_SpecularColor,$ffffff)
SetMaterialColor(0,#PB_Material_DiffuseColor,$ff)
MaterialShininess(0,64)
MaterialFilteringMode(i,#PB_Material_Anisotropic,4)
CreateEntity(0,MeshID(0),MaterialID(0))
Repeat
While WindowEvent():Wend
ExamineMouse()
ExamineKeyboard()
a+0.005
RotateEntity(0,0.2,0.3,0.5,#PB_Relative)
RenderWorld()
FlipBuffers()
Until MouseButton(#PB_MouseButton_Left) Or KeyboardReleased(#PB_Key_Escape)