// 周囲のピクセルから高さを取得 float heightL = texture2D(photo, uv + vec2(-0.001, 0.0)).r; float heightR = texture2D(photo, uv + vec2(0.001, 0.0)).r; float heightD = texture2D(photo, uv + vec2(0.0, -0.001)).r; float heightU = texture2D(photo, uv + vec2(0.0, 0.001)).r; // 高さ差から法線を計算 vec3 normal = normalize(vec3( heightL - heightR, // X方向の傾き heightD - heightU, // Y方向の傾き 1.0 // Z方向(上向き) )); // ノーマルマップ強度を適用 normal.xy *= normalStrength;