aabrick.vert

来自「java 3d编程的一些例子源代码」· VERT 代码 · 共 43 行

VERT
43
字号
//// Vertex shader for antialiased procedural bricks//// Authors: Dave Baldwin, Steve Koren, Randi Rost//          based on a shader by Darwyn Peachey//// Copyright (c) 2002-2004 3Dlabs Inc. Ltd. //// See 3Dlabs-License.txt for license information//uniform vec3 LightPosition;//const vec3 LightPosition = vec3 (0, 4, 4);const float SpecularContribution = 0.3;const float DiffuseContribution  = 1.0 - SpecularContribution;varying float LightIntensity;varying vec2  MCposition;void main(void){    vec3 ecPosition = vec3 (gl_ModelViewMatrix * gl_Vertex);    vec3 tnorm      = normalize(gl_NormalMatrix * gl_Normal);    vec3 lightVec   = normalize(LightPosition - ecPosition);    vec3 reflectVec = reflect(-lightVec, tnorm);    vec3 viewVec    = normalize(-ecPosition);    float diffuse   = max(dot(lightVec, tnorm), 0.0);    float spec      = 0.0;    if (diffuse > 0.0)    {        spec = max(dot(reflectVec, viewVec), 0.0);        spec = pow(spec, 16.0);    }    LightIntensity  = DiffuseContribution * diffuse +                      SpecularContribution * spec;    MCposition      = gl_Vertex.xy;    gl_Position     = ftransform();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?