Normals: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
Line 1: | Line 1: | ||
== dFdx/dFdy == |
== dFdx/dFdy method == |
||
You can calculate normals in the fragment shader without passing any vertex normals either to or from the vertex shader. However, that these normals will not interpolate across faces. |
You can calculate normals in the fragment shader without passing any vertex normals either to or from the vertex shader. However, that these normals will not interpolate across faces. |
Revision as of 09:24, 28 January 2020
dFdx/dFdy method
You can calculate normals in the fragment shader without passing any vertex normals either to or from the vertex shader. However, that these normals will not interpolate across faces.
in vec3 vertex_coord;
// https://community.khronos.org/t/getting-the-normal-with-dfdx-and-dfdy/70177
// http://web.archive.org/web/20120302100158/http://athile.net/library/blog/?tag=dfdx
vec3 normal()
{
vec3 x = dFdx(vertex_coord);
vec3 y = dFdy(vertex_coord);
return normalize(cross(x, y));
}