OpenGL ES 2.0의 새로운 제안입니다. iOS 플랫폼에서 OpenGL ES 2.0을 사용하여 스페 큘러 매핑을 구현하려고합니다. 내 지식에 따라, specular 매핑에서 우리는 specular map texture로부터 빛의 specular 성분에 대한 값을 추출한다. 버텍스 쉐이더에서 내가하고있는 일은 다음과 같습니다 :OpenGL ES 2.0의 스페셜 매핑
vec3 N = NormalMatrix * Normal;
vec3 L = normalize(LightPosition);
vec3 E = normalize(EyePosition);
vec3 H = normalize(L + E);
vec4 Specular=(texture2D(sampler_spec, TextureCoordIn)).rgba;
float df = max(0.0, dot(N, L));
float sf = max(0.0, dot(N, H));
sf = pow(sf, Specular.a);
vec3 color = AmbientMaterial + df * DiffuseMaterial + sf * Specular.rgb * SpecularMaterial;
DestinationColor = vec4(color, 1); `
그러나 내 게임에서 반사 효과를 볼 수 없습니다. 나는 내가 어디로 잘못 가고 있는지 모른다. 소중한 제안을하십시오.
Hi Christian Rau 님, 회신에 따라 프래그먼트 쉐이더에서 조명 계산을 변경했습니다. 범프 맵핑과 관련하여 한 가지 더 물어보고 싶습니다. 또한 범프 맵을 구현하려고합니다. 범프 맵핑에 대해 조금 공부했는데 그 중 대부분은 명확합니다. 나는 형상을 렌더링하기 위해 OBJ를 사용하고 있습니다. 범프 매핑에 필요한 꼭지점 당 정점을 찾는 데 어려움이 있습니다. U는 훌륭한 전문 지식을 갖고있는 것처럼 보이므로 범프 맵핑에 필요한 버텍스 탄젠트 (vertex tangents)를 찾는 데 귀중한 제안을하십시오 ..... – hurricane
@hurricane 물론 또 다른 질문에 가치가있을 것입니다. 그러나 먼저 여기 [http] //www.terathon.com/code/tangent.html) 및 [here] (http://fabiensanglard.net/bumpMapping/index.php)를 참조하십시오. 아이디어는 각 삼각형에 대한 탄젠트와 비트 탄젠트 (삼각형마다 일정하고 삼각형의 꼭지점의 텍스처 좌표에 따라 달라짐)를 계산 한 다음 각 꼭지점에 인접한 모든 삼각형의 탄젠트를 평균하는 것입니다. –
@hurricane 그래서 specular 매핑이 올바르게 작동합니까? 그렇다면 투표 및 수락은 항상 감사합니다. 그렇지 않다면 언제든지 질문을 업데이트하거나 의견을 쓸 수 있습니다. –