15bd8deadSopenharmony_ciXXX - Not complete yet!!! 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci APPLE_specular_vector 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GL_APPLE_specular_vector 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1999/02/13 08:11:19 $ $Revision: 1.1 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci 159 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci None 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciOverview 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci An alternative specular lighting model is enabled by passing 265bd8deadSopenharmony_ci the LIGHT_MODEL_SPECULAR_VECTOR token as the <pname> parameter 275bd8deadSopenharmony_ci to LightModel, and TRUE as the <param> parameter. The specular 285bd8deadSopenharmony_ci vector lighting model calculates the specular intensity as the 295bd8deadSopenharmony_ci dot product of the true reflection vector of the light source 305bd8deadSopenharmony_ci and the vector from the vertex to the viewpoint. This yields 315bd8deadSopenharmony_ci results that are visually similar to but often more realistic 325bd8deadSopenharmony_ci than the existing lighting model. 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci Mathematically, the specular component s.n in the existing 355bd8deadSopenharmony_ci lighting model calculation is replaced with the following 365bd8deadSopenharmony_ci alternative calculation. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci Given three vectors, n, l, and p, where n is the unit normal 395bd8deadSopenharmony_ci vector at the vertex, l is the unit vector from the vertex to 405bd8deadSopenharmony_ci the light position, and p is the unit vector from the vertex 415bd8deadSopenharmony_ci to the viewpoint (or the vector {0,0,1} if 425bd8deadSopenharmony_ci LIGHT_MODEL_LOCAL_VIEWER is false), the specular component is 435bd8deadSopenharmony_ci given by 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci (2 * cross(n, cross(n, l)) + l) . p 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci All other lighting model and material parameters (shininess, 485bd8deadSopenharmony_ci spotlight, attenuation, local viewer, and direction/positional 495bd8deadSopenharmony_ci sources) operate normally. The specular vector lighting model 505bd8deadSopenharmony_ci affects both rgba and index modes. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciNew Procedures and Functions 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci None 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciNew Tokens 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci Accepted by the <pname> parameters of LightModelf, LightModeli, 595bd8deadSopenharmony_ci LightModelfv, LightModeliv, GetBooleanv, GetDoublev, GetFloatv 605bd8deadSopenharmony_ci and GetIntegerv : 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation) 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ci XXX - Not complete yet!!! 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci Section 2.13.1, Lighting 695bd8deadSopenharmony_ci Table 2.7 should be appended to include: 705bd8deadSopenharmony_ci "S_bs boolean FALSE use specular vector lighting model" 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci Equations 2.2 and 2.3 should be updated to reflect the modified 735bd8deadSopenharmony_ci h_i terms in the specular component, as described above. 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci Section 2.13.2, Lighting Parameter Specification 765bd8deadSopenharmony_ci Table 2.8 should be appended to include: 775bd8deadSopenharmony_ci "S_bs LIGHT_MODEL_SPECULAR_VECTOR 1" 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci None 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 845bd8deadSopenharmony_ciand the Frame Buffer) 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci None 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci None 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci Not done 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ciAdditions to the GLX Specification 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciGLX Protocol 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci None 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ciErrors 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci None 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ciNew State 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attrib 1095bd8deadSopenharmony_ci --------------------------------- ----------- ---- ------------- -------- 1105bd8deadSopenharmony_ci LIGHT_MODEL_SPECULAR_VECTOR_APPLE GetBooleanv B False lighting 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ciNew Implementation Dependent State 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ci None 115