MagicWolf, Я незнаю.
Вот посмотри на код!
Код:
procedure TShaderPipeline.InitBumpMap();
begin
bump_shader.Load('ShaderPipeline\bump\fragment.txt',GL_FRAGMENT_SHADER_ARB);
bump_shader.Load('ShaderPipeline\bump\vertex.txt',GL_VERTEX_SHADER_ARB);
bump_shader.Compile();
u_fvAmbient:=bump_shader.GetUniform('fvAmbient');
u_fvSpecular:=bump_shader.GetUniform('fvSpecular');
u_fvDiffuse:=bump_shader.GetUniform('fvDiffuse');
u_fSpecularPower:=bump_shader.GetUniform('fSpecularPower');
u_Bump_BaseMap:=bump_shader.GetUniform('baseMap');
u_Bump_NormalMap:=bump_shader.GetUniform('bumpMap');
u_fvLightPosition:=bump_shader.GetUniform('fvLightPosition');
u_fvEyePosition:=bump_shader.GetUniform('fvEyePosition');
shaders_texture.LoadTexture(UN_ANISOTROPY_FILTER,'data/stone_wall.tga',u_Bump_BaseMap,false);
shaders_texture.LoadTexture(UN_ANISOTROPY_FILTER,'data/bump.tga', u_Bump_NormalMap,false);
end;
procedure TShaderPipeline.RenderBumpMap();
begin
bump_shader.Start();
bump_shader.SetUniform(u_fvAmbient,0.0,0.5,0.5,1.0);
bump_shader.SetUniform(u_fvSpecular,0.5,0.5,0.5,1.0);
bump_shader.SetUniform(u_fvDiffuse,0.5,0.5,0.5,1.0);
bump_shader.SetUniform(u_fSpecularPower,1.0);
bump_shader.SetUniform(u_fvLightPosition,-10.0,10.0,10.0);
bump_shader.SetUniform(u_fvEyePosition,10.0,10.0,-100.0);
end;
Пока функции без параметров,так как отлаживаю!
В Ините:
Код:
ShaderPipeline.InitBumpMap;
quadratic:=gluNewQuadric();
gluQuadricNormals(quadratic, GLU_SMOOTH);
gluQuadricTexture(quadratic, GL_TRUE);
В Рендере:
Код:
ShaderPipeline.RenderBumpMap;
gluSphere(quadratic,1.3,32,32);