Advertisement
nex036ara

lighting

Jan 19th, 2014
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.42 KB | None | 0 0
  1. /******************************************************/
  2. public void Resize()
  3.         {
  4.          
  5.             // perspektiva
  6.             Gl.glViewport(0, 0, m_width, m_height);
  7.             Gl.glMatrixMode(Gl.GL_PROJECTION);
  8.             Gl.glLoadIdentity();
  9.             Glu.gluPerspective(45.0, m_width /(double)m_height, 0.5, 16.0);
  10.  
  11.             Gl.glMatrixMode(Gl.GL_MODELVIEW);
  12.             Gl.glLoadIdentity();
  13.  
  14.             float[] spotLightPos = { -0.8f, 2.0f, 0.0f, 1.0f };
  15.  
  16.             //reflektor je stacionaran-transformacije ne uticu na njega
  17.             Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, spotLightPos);
  18.            
  19.         }
  20. /******************************************************/
  21. #region Atributi
  22. ..
  23. float[] spotLightDirection = { 0.0f, -0.48f, -0.6f};
  24. ..
  25. #endregion
  26. /******************************************************/
  27.  
  28.  public void Draw()
  29.         {
  30.         Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
  31.  
  32.              //scena
  33.              Gl.glPushMatrix();
  34.  
  35.              Glu.gluLookAt(0.0f, 0.2f, 0.5f, //ka lopti, eye
  36.               0.0f, 0.0f, 0.0f, //center
  37.                0.0f, 1.0f, 0.0f);//da ne bude naopacke
  38.  
  39.             #region scena
  40.                                
  41.             Gl.glTranslatef(0.0f, 0.0f, -m_sceneDistance); // m_sceneDistance = 1.3f;
  42.             Gl.glRotatef(m_xRotation, 1.0f, 0.0f, 0.0f); //omoguci rotaciju po x
  43.             Gl.glRotatef(m_yRotation, 0.0f, 1.0f, 0.0f); //omoguci rotaciju po y
  44.             Gl.glRotatef(180.0f, 0.0f, -1.0f, 0.0f); //rotacija scene
  45.             DrawScene();
  46.             Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_SPOT_DIRECTION, spotLightDirection);
  47.            //Gl.glTranslated(spotLightDirection[0],spotLightDirection[1],spotLightDirection[2]);
  48.            //IscrtajTestObjekat();
  49.             #endregion
  50. .......
  51.  
  52. /******************************************************/
  53.  private void DrawScene()
  54.         {
  55.  
  56.             #region postolje
  57.            .....
  58.             //temena postolja
  59.            
  60.             Gl.glBegin(Gl.GL_QUADS);
  61.             Gl.glNormal3f(0.0f, 1.0f, 0.0f);
  62.             Gl.glVertex3f(-0.65f, -0.49f, 0.7f);
  63.             Gl.glVertex3f(-0.65f, -0.49f, -0.7f);
  64.             Gl.glVertex3f( 0.65f, -0.49f, -0.7f);
  65.             Gl.glVertex3f( 0.65f, -0.49f, 0.7f);
  66.             Gl.glEnd();
  67.            ...
  68. /******************************************************/
  69.  private void Initialize()
  70.         {
  71. ...
  72.      Gl.glEnable(Gl.GL_LIGHTING);
  73.            
  74.             //reflektor
  75.             float[] ambientLight = { 0.1f, 0.1f, 0.1f, 1.0f };
  76.             float[] diffuseLight = { 1.0f, 1.0f, 1.0f, 1.0f };
  77.             Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_AMBIENT, ambientLight);
  78.             Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_DIFFUSE, diffuseLight);
  79.             Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_SPOT_CUTOFF, 25.0f);
  80.             Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_SPOT_EXPONENT, 64.0f);
  81.             Gl.glEnable(Gl.GL_LIGHT0);
  82.             //problem - model lopte je crn !
  83.  
  84.             //tackasto
  85.             float[] red_light = { 0.1f, 0.0f, 0.0f, 1.0f };
  86.             float[] pointDiffuse = { 1.0f, 1.0f, 1.0f, 1.0f };
  87.             Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_AMBIENT, red_light);
  88.             Gl.glLightfv(Gl.GL_LIGHT1, Gl.GL_DIFFUSE, pointDiffuse);
  89.             Gl.glLightf(Gl.GL_LIGHT1, Gl.GL_SPOT_CUTOFF, 180.0f); //sad je point
  90.             Gl.glEnable(Gl.GL_LIGHT1);
  91.             #endregion
  92. ..
  93. /******************************************************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement