쉐이더에 문제가 있습니다. glsl을 사용하여 게임에 질감과 퐁 음영을 넣으려고하지만 좋은 효과를 얻을 수 없습니다.glsl에서 phong과 텍스처를 모두 사용합니다.
저는 오랫동안 Google을 검색해 왔으며, 어떻게 가벼운 감촉과 질감을 함께 연결했는지 알 수 없으므로 여기에서 글을 쓰고 질문하기로했습니다.
이 텍스처없이 내 게임 :
을 그리고 이것은 텍스처입니다 :
내가 실현하려 원하는 것은이 분홍빛이 도는 텍스처가에 자리 더 잘 볼 수 있도록 만드는 것입니다 center - 텍스쳐가없는 것처럼, 거터에있는 버텍스 쉐이딩을 수리합니다. - 픽셀 쉐이딩마다 확인합니다. 지금은 무엇이 잘못 됐는지 알지 못합니다.
퐁 쉐이딩으로 약 10 개의 쉐이더를 확인했으며, 픽셀 쉐이딩이 아닌 정점별로도 있습니다.
내 조각 버텍스 코드입니다. 누군가가 뭔가를 볼 수 있습니까?
varying vec3 N;
varying vec3 v;
uniform sampler2D myTexture;
varying vec2 vTexCoord;
void main (void)
{
vec4 finalColor = vec4(0.0, 0.0, 0.0, 0.0);
vec3 L = normalize(gl_LightSource[0].position.xyz - v);
vec3 E = normalize(-v); // we are in Eye Coordinates, so EyePos is (0,0,0)
vec3 R = normalize(-reflect(L,N));
//calculate Ambient Term:
vec4 Iamb = gl_FrontLightProduct[0].ambient;
//calculate Diffuse Term:
vec4 Idiff = gl_FrontLightProduct[0].diffuse * max(dot(N,L), 0.0);
// calculate Specular Term:
vec4 Ispec = gl_FrontLightProduct[0].specular
* pow(max(dot(R,E),0.0),0.3*gl_FrontMaterial.shininess);
finalColor+=Iamb + Idiff + Ispec;
// write Total Color:
gl_FragColor = gl_FrontLightModelProduct.sceneColor + (texture2D(myTexture, vTexCoord)) + finalColor;
}
내 버텍스 쉐이더
varying vec3 N;
varying vec3 v;
varying vec2 vTexCoord;
void main(void)
{
v = vec3(gl_ModelViewMatrix * gl_Vertex);
N = normalize(gl_NormalMatrix * gl_Normal);
vTexCoord = vec2(gl_MultiTexCoord0);
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
나는 도움을 드리겠습니다.
편집 :
이 내가 쉐이더로 내 질감을 넣어하는 방법이다. 셰이더에서 텍스처 값을 편집 할 수 있기 때문에 괜찮습니다. (저는 생각합니다).
int my_sampler_uniform_location = glGetUniformLocation(brickProg, "myTexture");
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);
glUniform1i(my_sampler_uniform_location,0);
CUTIL::drawBox();
glBindTexture(GL_TEXTURE_2D,0);
편집 2 :
색상에 대한 니콜 올가미 제안은 내 쉐이더를 편집하고 다음과 같이 변경 한 추가 한 후:
gl_FragColor = (texture2D (myTexture, vTexCoord)) + finalColor;
이제는 밝았지만 지금은 무대에서 약간의 빛을 켄지해야하며 위대 할 것입니다. 하지만 여전히 픽셀 쉐이딩 당 하나의 버텍스 쉐이딩 당 얻지 못했습니다. 이것은 나의 현재 화면이고 나는 음영에 대해 얘기 무슨 뜻인지 예에 표시 한 :
GL 텍스처 좌표를 설정하고 전달하는 코드를 표시 할 수 있습니까? –
@ MārtiņšMožeiko 편집 및 추가 – sebap123
조명없이 텍스처를 렌더링하면 어떻게됩니까? –