代码拉取完成,页面将自动刷新
同步操作将从 李开诚/position-based-dynamic-GPU 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#version 330
uniform vec3 surface_color;
uniform float shininess;
uniform float specular_factor;
uniform sampler2D tex;
layout(location = 0, index = 0) out vec4 frag_color;
in GeoData
{
vec3 normal;
vec3 view;
vec2 texCoord;
}
inData;
void main()
{
vec3 normal = inData.normal;
if (!gl_FrontFacing)
{
normal = -inData.normal;
}
const vec3 ambient = vec3(0.6, 0.6, 0.6);
const vec3 diffuse = vec3(1.0, 1.0, 1.0);
const vec3 specular = vec3(1.0, 1.0, 1.0);
vec3 eye_n = normalize(normal);
vec3 eye_v = normalize(inData.view);
const vec3 eye_l = vec3(0.0, 0.0, 1.0);
float cos_ln = max(dot(eye_l, eye_n), 0.0);
vec3 h = normalize(eye_l + eye_v);
float cos_nh = max(dot(eye_n, h), 0.0);
vec3 color = surface_color * (ambient + diffuse * cos_ln + specular_factor * specular * pow(cos_nh, shininess));
vec4 color2 = texture2D(tex, inData.texCoord) * vec4(color, 1.0);
frag_color = color2;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。