Article View: cn.bbs.comp.program
Article #967OPENGL(6)
From: ����
Date: Tue, 05 May 1998 00:00
Date: Tue, 05 May 1998 00:00
168 lines
7828 bytes
7828 bytes
BBSˮľ�廪վ�þ�����
������: yxy (��˿˿#���ߵ�С��ӥ), ����: GAME_Designer
�� ��: OPENGL(6)
����վ: BBS ˮľ�廪վ (Sun Jan 18 16:19:01 1998)
�ⲿ��������Ҫ�IJ��֣�ǰ��ֻ�ǻ��������ܹ��մ��?�������?��Դ
���á����ʶ����Լ���ؼ����ͼ��ѧ�ĸ��
һ����˵����3Dͼ��IJ��裺
1 ��ģ
2 ������ģ�;��任ͶӰ��2D��ͼ
3 ȷ���������пɼ��棬��������
4 ���㳡����ɫ
�����Ѿ���ǰ�������1 2 ����
������OPENGL�Ĺ��������Dz��ع���
����4����������ص㡣
��һ������
��Ϊ�����䡢���
1 �����
����ģ��ֻ����������淴�����Ӿ�Ӱ�졣�ٶ��������⻬��������
��������Ϲ��ɣ���������Ϊ��������
һ�㷴����Ϊ���������䡢������;��淴��3��������
��������⣨Ambient Light�����������ȴ���Χ�������������沢���������
���䡣
������⣨Diffuse Light�����ض���Դ���������ķ��������Щ������������
����Ĺ⡣
���淴��⣨Specular Light������һ������ķ���⣬�����Դ�ڽ������ϲ���
�ĸ߹⣨Highlight����
��ϸ�ɲ��Ĵ�ѧ���?�Ǻ�
����һ����Ҫ�ĺ���
(1)
void glLight{if}[v](GLenum light,GLenum pname,TYPE param)
���ù�Դ���ԡ�
light���������磺GL_LIGHT0,GL_LIGHT1...GL_LIGHT7��
pname ȱʡֵ ˵��
GL_AMBIENT 0,0,0,1 RGBAģʽ�Ļ�����
GL_DIFFUSE 1,1,1,1 RGBAģʽ���������
GL_SPECULAR 1,1,1,1 RGBAģʽ�ľ����
GL_POSTION 1,0,1,0 ��Դλ��������
GL_SPOT_DIRECTION 0,0,-1 ���Դ�۹ⷽ��ʸ��(x,y,z,w)
GL_SPOT_EXPONENT 0 ���Դ�۹�ָ��
GL_SPOT_CUTOFF 180 ���Դ�۹ⷢɢ���
GL_CONSTANT_ATTENUATION 1 ����˥������
GL_LINER_ATTENUATION 0 ����˥������
GL_QUADRATIC_ATTENUATION 0 ƽ��˥������
˵����GL_DIFFUSE GL_SPECULAR��ȱʡֵֻ����GL_LIGHT0,
�����ԴGL_DIFFUSE GL_SPECULARȱʡֵΪ��(0.0,0.0,0.0,1.0)
�������ҿ���ǰ����˵�ˣ�����
TYPE����{}�е���Щ�������ͣ����磺i����int��f����float��
v�ǿ�ѡ����������������Ϊ������һ���Դ��
(2)���ù���/�رչ�Դ
void glEnable(GLenum cap)
void glDisable(GLenum cap)
����ʹ��Դ��Ч��
glEnable(GL_LIGHT0);
���������յ����ӣ�
/////////////////////////////////////////
//sample.cpp
#include "glos.h"
#include <GL/gl.h>
#include <GL/glaux.h>
#include "windows.h"
void myinit(void);
void CALLBACK display(void);
void CALLBACK reshape(GLsizei w,GLsizei h);
void myinit(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,500,500);
auxInitWindow("sample1");
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
//glShadeModel����ȷ����ɫ���ģʽ��ȱʡ��GL_SMOOTH��Ч��Ϻã�������
//������������������䣬��ô��ɫ�ǰ��ռ���ģ��ƽ�����ģ�������
//����С������Ч��ÿ���
// glShadeModel(GL_FLAT);
//����һ����Դ��λ�����
GLfloat light_position[]={1.0,1.0,1.0,0.0};
glLightfv(GL_LIGHT0,GL_POSITION,light_position);
//�����Դ����������ɫ����ɫ���Լ������⣨��ɫ����������ϻ��������
//���Ϳ��Կ�����Դ��Ч�����û��������������һ�£��ڵ����ĺ�ɫ
//�������£��ܹ��յIJ��ֳ��ִ���ɫ����ⲿ�ֳ��ֺ�ɫ��
//�㻹���Ը���ϸ����������ָ���������ԣ������������ȱʡ���ˡ�
GLfloat light_diffuse[]={0.0,0.0,1.0,1.0};
glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
GLfloat light_ambient[]={1.0,0.0,0.0,1.0};
glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
//����GL_LIGHTING ��˵����
//If enabled, use the current lighting parameters to compute the
//vertex color or index. If disabled, associate the current color
//or index with each vertex. ���Enabled��ʹ�õ�ǰ���ղ������ÿ��
//�����ɫ�����������ȥ����䣬��ôȱʡ�İ�ɫ�������Դ��������
//��ɫ��Դ�㽫����һ����ɫ��û������е���
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
//����GL_LESS��˵��
//Passes if the incoming z value is less than the stored z value.
//This is the default value.
//��glEnable(GL_DEPTH_TEST)������ȱȽϣ�Ȼ�������z���С��buffer��
//��ֵ����ǰ��z��С�����۲�㣩������ʾ��ʵ�ʾ���������
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
}
void CALLBACK reshape(GLsizei w,GLsizei h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho(-2.0,2.0,-2.0*(GLfloat)h/(GLfloat)w,
2.0*(GLfloat)h/(GLfloat)w,-10.0,10.0);
else
glOrtho(-2.0*(GLfloat)h/(GLfloat)w,
2.0*(GLfloat)h/(GLfloat)w,-2.0,2.0,-10.0,10.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void draw(void)
{
//���ø���⺯��һ��ʵ��Բ�뾶1.0
auxSolidSphere(1.0);
}
void CALLBACK display(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
draw();
glFlush();
}
void main(void)
{
myinit();
auxReshapeFunc(reshape);
auxMainLoop(display);
}
//end of sample
/////////////////////////////////////////////
--
�� ��Դ:��BBS ˮľ�廪վ bbs.net.tsinghua.edu.cn��[FROM: 166.111.74.90]
BBSˮľ�廪վ�þ�����
�� ��Դ: �й�ƴ�BBSվ [bbs.ustc.edu.cn]
Technical Details
Message-ID:
<980505.yWbS3$PBBS@bbs.ustc.edu.cn>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: fc86e,ad019b9b3e55bb55,start X-Google-Attributes: gidfc86e,public From: Ambi_A@bbs.ustc.edu.cn (����) Subject: OPENGL(6) Date: 1998/05/05 Message-ID: <980505.yWbS3$PBBS@bbs.ustc.edu.cn> X-Deja-AN: 350412451 Organization: �й�ƴ�BBSվ Newsgroups: cn.bbs.comp.program