Total members 11895 |It is currently Sun Dec 22, 2024 10:59 am Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





Adding lighting to a solid sphere using openGL light.
Code:
#include <GL\glut.h>

GLfloat xRotated, yRotated, zRotated;
GLdouble radius=0.5;
GLfloat qaBlack[] = {0.0, 0.0, 0.0, 1.0}; //Black Color
GLfloat qaGreen[] = {0.0, 1.0, 0.0, 1.0}; //Green Color
GLfloat qaWhite[] = {1.0, 1.0, 1.0, 1.0}; //White Color
GLfloat qaRed[] = {1.0, 0.0, 0.0, 1.0}; //White Color

    // Set lighting intensity and color
GLfloat qaAmbientLight[]    = {0.2, 0.2, 0.2, 1.0};
GLfloat qaDiffuseLight[]    = {0.8, 0.8, 0.8, 1.0};
GLfloat qaSpecularLight[]    = {1.0, 1.0, 1.0, 1.0};
GLfloat emitLight[] = {0.9, 0.9, 0.9, 0.01};
GLfloat Noemit[] = {0.0, 0.0, 0.0, 1.0};
    // Light source position
GLfloat qaLightPosition[]    = {0.5, 0, -3.5, 0.5};

void display(void);
void reshape(int x, int y);
 
void idleFunc
(void)
{
 
     zRotated 
+= 0.02;
     
    display
();
}
void initLighting()
{

    // Enable lighting
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);

     // Set lighting intensity and color
       glLightfv(GL_LIGHT0, GL_AMBIENT, qaAmbientLight);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, qaDiffuseLight);
     glLightfv(GL_LIGHT0, GL_SPECULAR, qaSpecularLight);
    
    
// Set the light position
     glLightfv(GL_LIGHT0, GL_POSITION, qaLightPosition);

}

int main (int argc, char **argv)
{
    glutInit(&argc, argv); 
     glutInitDisplayMode
(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
    glutInitWindowSize(350,350);
    glutCreateWindow("Solid Sphere");
    initLighting(); 
    xRotated 
= yRotated = zRotated = 0.0;
    
    glutIdleFunc
(idleFunc);
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMainLoop();
    return 0;
}
 
void display
(void)
{


    glMatrixMode(GL_MODELVIEW);
    // clear the drawing buffer.
    glClear(GL_COLOR_BUFFER_BIT);
    // clear the identity matrix.
    glLoadIdentity();
   



 
    
    
// traslate the draw by z = -4.0
    // Note this when you decrease z like -8.0 the drawing will looks far , or smaller.
    glTranslatef(0.0,0.0,-5.0);
     

    
// scaling transfomation 
    glScalef(1.0,1.0,1.0);
    glRotatef(zRotated,0.0,0.0,1.0);
    // Set material properties
       glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, qaGreen);

    glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, qaGreen);

    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, qaWhite);

    glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 20);

    // built-in (glut library) function , draw you a sphere.
    glutSolidSphere(radius,25,25);
    // Flush buffers to screen
     
    glFlush
();
    glutSwapBuffers();      
    
// sawp buffers called because we are using double buffering 
   // glutSwapBuffers();
}

void reshape(int x, int y)
{
    if (== 0 || x == 0) return;   
    glMatrixMode
(GL_PROJECTION);  
    glLoadIdentity
(); 
    
    gluPerspective
(39.0,(GLdouble)x/(GLdouble)y,0.6,21.0);
    glMatrixMode(GL_MODELVIEW);
    glViewport(0,0,x,y);  //Use the whole window for rendering
}
 





Attachments:
File comment: Using light with solid sphere.
LightSolidSphere.png
LightSolidSphere.png [ 9.26 KiB | Viewed 17345 times ]

_________________
M. S. Rakha, Ph.D.
Queen's University
Canada
Author:
Mastermind
User avatar Posts: 2715
Have thanks: 74 time
Post new topic Reply to topic  [ 1 post ] 

  Related Posts  to : Adding lighting to a solid sphere
 Draw a solid sphere using openGL     -  
 Add solid Border to div     -  
 add lighting to teapot 3d     -  
 Turn on-off lighting effects     -  
 change border style to solid at div tag     -  
 demonstrate how to add lighting and material properties     -  
 Sphere by Lines     -  
 drawing a rotating sphere     -  
 rotate sphere in a circle with light     -  
 adding abbreviations to your html     -  



Topic Tags

C++ Graphics
cron





Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com