<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=GB2312">
<META content="MSHTML 6.00.2900.3395" name=GENERATOR><LINK 
href="BLOCKQUOTE{margin-Top: 0px; margin-Bottom: 0px; margin-Left: 2em}" 
rel=stylesheet>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
<STYLE>@font-face {
        font-family: ;
}
@font-face {
        font-family: Verdana;
}
@font-face {
        font-family: @;
}
@page Section1 {size: 595.3pt 841.9pt; margin: 72.0pt 90.0pt 72.0pt 90.0pt; layout-grid: 15.6pt; }
P.MsoNormal {
        TEXT-JUSTIFY: inter-ideograph; FONT-SIZE: 10.5pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify
}
LI.MsoNormal {
        TEXT-JUSTIFY: inter-ideograph; FONT-SIZE: 10.5pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify
}
DIV.MsoNormal {
        TEXT-JUSTIFY: inter-ideograph; FONT-SIZE: 10.5pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman"; TEXT-ALIGN: justify
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
        FONT-WEIGHT: normal; COLOR: windowtext; FONT-STYLE: normal; FONT-FAMILY: Verdana; TEXT-DECORATION: none; mso-style-type: personal-compose
}
DIV.Section1 {
        page: Section1
}
BLOCKQUOTE {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
}
OL {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
UL {
        MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
</STYLE>
</HEAD>
<BODY>
<DIV><FONT face=Verdana color=#0000ff size=2>Hi,</FONT></DIV>
<DIV><FONT face=Verdana color=#0000ff size=2>To make phong shading using 
shaders(in GLSL), I have to pass the the light position to the vertex 
shader,  </FONT><FONT face=Verdana size=2><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">But 
the position of the vertex will be in eyespace (after multiplication with the 
ModelView matrix). So I need the light position in eye-space as well. Which is 
the best way of obtaining the correct light position? Either I need the vertex 
position to be in world space, I do in this way:</SPAN></FONT></DIV>
<DIV><FONT face=Verdana size=2><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"></SPAN></FONT> </DIV>
<DIV><FONT face=Verdana size=2><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"> 
<DIV><FONT 
size=5>mat4 modelMatrix = osg_ViewMatrixInverse* gl_ModelViewMatrix ;</FONT></DIV>
<DIV><FONT size=5>WorldPos=modelMatrix * gl_Vertex;</FONT></DIV>
<DIV><FONT size=5>mat3 normalmatrix=mat3(modelMatrix);</FONT></DIV>
<DIV><FONT 
size=5>WorldNrm=normalize(normalmatrix * gl_Normal);</FONT></DIV>
<DIV> </DIV>
<DIV>though it works well to get the world space coordinate of each vertex, but 
to compute specular of object I have to know the eye position, since we are not 
in eye coordinates the eye postion is no longer (0,0,0), must the eye coordinate 
be passed by uniform?</DIV></SPAN></FONT></DIV>
<DIV><FONT face=Verdana size=2><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"></SPAN></FONT> </DIV>
<DIV><FONT face=Verdana size=2><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">Or 
I need the light position in eye space. </SPAN></FONT><FONT face=Verdana 
size=2><FONT face=Verdana><FONT size=2>I try to translate the light position 
into eye coordinate in this way:</FONT></DIV>
<DIV>
<DIV><FONT 
size=4> Pos_light0 =  osg_ViewMatrix *light0_pos  ; 
</FONT></DIV>
<DIV><FONT size=4> or </FONT></DIV>
<DIV><FONT 
size=4> Pos_light0 =  light0_pos * osg_ViewMatrix ;</FONT> 
</DIV>
<DIV> </DIV>
<DIV> <FONT size=2>but it seems not work.</FONT></DIV>
<DIV> </DIV>
<DIV><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">What 
are the general strategy for this problem?</SPAN></DIV>
<DIV><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"></SPAN> </DIV>
<DIV><SPAN class=Apple-style-span 
style="WORD-SPACING: 0px; FONT: 13px verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0"></SPAN> </DIV>
<DIV><FONT size=2>Thanks very much!</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Julie<FONT color=#c0c0c0></DIV>
<DIV><FONT 
size=2>2008-09-09</FONT></FONT></DIV></FONT></FONT></DIV></BODY></HTML>