le bump est correcte
ci dessous un exemple minimaliste (color en perpixel)
est ce qu'il y a cette p... d'ombre noir ?
Code : Tout sélectionner
; ----------------------------------------------------------------------------------------------------------
; color perpixel mini
; ----------------------------------------------------------------------------------------------------------
InitEngine3D():InitSprite():InitKeyboard():InitMouse()
ExamineDesktops()
OpenWindow(0, 0,0, DesktopWidth(0)*0.8,DesktopHeight(0)*0.8, "CreateShader - [Esc] quit",#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)
CreateCamera(0, 0, 0, 100, 100):MoveCamera(0,0,3,-6):CameraLookAt(0,0,0,0)
CreateLight(0,$ffffff, -10000, 10000, 0)
AmbientColor($111111*8)
CameraBackColor(0,$444488)
Define.s vert_pg,frag_pg
vert_pg="%%#version 130%%uniform mat4 worldviewproj_matrix;//+24%uniform vec4 camera_pos_os;//+77%uniform vec4 light_pos_os;//+44 0%%varying vec3 oviewdir;%varying vec3 olightdir;%varying vec3 onormal;%%void main()%{%oviewdir = normalize(camera_pos_os.xyz - gl_Vertex.xyz);%olightdir = normalize(light_pos_os.xyz - gl_Vertex.xyz);%onormal = gl_Normal;%gl_Position = worldviewproj_matrix * gl_Vertex;%}%%%%%%"
frag_pg="%%#version 130%%uniform vec4 diffuse_ml;//+69 0%uniform vec4 specular_ml;//+70 0%uniform vec4 ambient_ml;//+67 0%uniform float shininess;//+36%%varying vec3 oviewdir;%varying vec3 olightdir;%varying vec3 onormal;%%void main()%{%vec3 normal=normalize(onormal);if (gl_FrontFacing==false) normal*=-1;%vec3 viewdir=normalize(oviewdir);%vec3 lightdir=normalize(olightdir);%float dif=max(dot(lightdir, normal), 0);%float spe=pow(dot(normalize(lightdir + viewdir), normal),shininess);%gl_FragColor=(ambient_ml + diffuse_ml * dif) + specular_ml* spe;%}%%%%%%"
CreateShader(0,vert_pg,frag_pg)
CreateShaderMaterial(0,0)
DisableMaterialLighting(0,1)
SetMaterialColor(0,#PB_Material_AmbientColor|#PB_Material_DiffuseColor,$ff)
MaterialShininess(0,64,$ffffff)
CreateTorus(0,2,1,32,32)
CreateEntity(0,MeshID(0),MaterialID(0))
Define.f MouseX,Mousey,depx,depz,dist,val,blend
Repeat
While WindowEvent():Wend
ExamineKeyboard()
ExamineMouse()
RotateEntity(0,0.2,0.2,0.2, #PB_Relative)
RenderWorld()
FlipBuffers()
Until KeyboardReleased(#PB_Key_Escape) Or MouseButton(3)