Skip to content

Instantly share code, notes, and snippets.

@gam0022
Last active November 23, 2017 10:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gam0022/ca204f51361abbc81de838cd51856888 to your computer and use it in GitHub Desktop.
Save gam0022/ca204f51361abbc81de838cd51856888 to your computer and use it in GitHub Desktop.
レイマーチングの法線をdFdxとdFdyで導出する ref: https://qiita.com/gam0022/items/1878150981494fd66abe
vec3 getNormal(vec3 p) {
vec3 dx = dFdx(p);
vec3 dy = dFdy(p);
return normalize(cross(dx, dy));
}
const float EPS = 0.001;
vec3 getNormal(vec3 p) {
return normalize(vec3(
sceneDist(p + vec3(EPS, 0.0, 0.0)) - sceneDist(p + vec3(-EPS, 0.0, 0.0)),
sceneDist(p + vec3(0.0, EPS, 0.0)) - sceneDist(p + vec3( 0.0, -EPS, 0.0)),
sceneDist(p + vec3(0.0, 0.0, EPS)) - sceneDist(p + vec3( 0.0, 0.0, -EPS))
));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment