GLSLで書かれた単純な頂点シェーダがあり、サーフェスの法線を計算する際に誰かが私を助けてくれるのだろうかと思いました。私は現在の光のモデルが見える...平らな面をアップグレードしています...奇妙です。私の現在のコードは以下の通りです:GLSL - Surface Normalを計算します。
varying vec4 oColor;
varying vec3 oEyeNormal;
varying vec4 oEyePosition;
uniform float Amplitude; // Amplitude of sine wave
uniform float Phase; // Phase of sine wave
uniform float Frequency; // Frequency of sine wave
varying float sinValue;
void main()
{
vec4 thisPos = gl_Vertex;
thisPos.z = sin((thisPos.x + Phase) * Frequency) * Amplitude;
// Transform normal and position to eye space (for fragment shader)
oEyeNormal = normalize(vec3(gl_NormalMatrix * gl_Normal));
oEyePosition = gl_ModelViewMatrix * thisPos;
// Transform vertex to clip space for fragment shader
gl_Position = gl_ModelViewProjectionMatrix * thisPos;
sinValue = thisPos.z;
}
誰にでもアイデアはありますか?
ありがとうございました! Win7のパーティションを起動すると、すぐにこれを試してみます。私は照明とGLSLで時間を過ごしています! – Josh