Normal Mapping
Normal Mapping
片側を表すVertexのNormal値が同じであれば,内部のベクトルも同じ値を持つ.
ボールの場合、Vertexごとに異なるNormal値を持つため、立体視表示を実現することができ、立方体の場合、各面を表すVertex値は同じNormal値を持つため、内部画素も立体視表示しない.
// 큐브의 앞면을 나타냄
vec[0] = Vertex(Vec3(-w2, -h2, -d2), Vec2(0.0f, 1.0f), Vec3(0.0f, 0.0f, -1.0f), Vec3(1.0f, 0.0f, 0.0f));
vec[1] = Vertex(Vec3(-w2, +h2, -d2), Vec2(0.0f, 0.0f), Vec3(0.0f, 0.0f, -1.0f), Vec3(1.0f, 0.0f, 0.0f));
vec[2] = Vertex(Vec3(+w2, +h2, -d2), Vec2(1.0f, 0.0f), Vec3(0.0f, 0.0f, -1.0f), Vec3(1.0f, 0.0f, 0.0f));
vec[3] = Vertex(Vec3(+w2, -h2, -d2), Vec2(1.0f, 1.0f), Vec3(0.0f, 0.0f, -1.0f), Vec3(1.0f, 0.0f, 0.0f));
//각 정점들이 같은 Normal로 표현된다
Vertex数を増やすように立体化表示を行う場合、計算量は増加するVertexに伴って増加するので不適切と解決した.
したがって、個別の画像ファイルNormal Mappingを作成することで、対応するNormal値を各ピクセルに格納し、それを使用して問題を解決します.
Normal Mappingは、テクスチャ内の各ピクセルのNormal値を持つ個別のファイルから情報を取得し、テクスチャをより立体的に表す方法である。
Normal Textureは、個別の座標系Tangent Spaceを使用します.
Tangent Spaceとは?
結果
after
右:適用されません
Reference
この問題について(Normal Mapping), 我々は、より多くの情報をここで見つけました https://velog.io/@sansam41/Normal-Mappingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol