🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #966

OPENGL(5)

#966
From: ����
Date: Tue, 05 May 1998 00:00
152 lines
5490 bytes
BBSˮľ�廪վ�þ�����
������: yxy (��˿˿#���ߵ�С��ӥ), ����: GAME_Designer 
��  ��: OPENGL(5) 
����վ: BBS ˮľ�廪վ (Fri Jan 16 09:13:13 1998) 
 
��ؿ�����OPENGL��򵥵����ݣ���ɫ�� 
һ RGBģʽ 
һ������ʵ�ֲ�ɫ����RGB���ɫ������ġ������ 
RGBģʽ������ǰ��һֱ�����ַ��� 
�����磺 
         glColor3f(1.0,0.0,0.0); 
         glVertex3f(0.0,0.0,0/0); 
  ����һ����ɫ�㡣�� 
void glColor3{b s i f d ub us ui}(TYPE r,TYPE g, TYPE b); 
void glColor4{b s i f d ub us ui}(TYPE r,TYPE g, TYPE b,TYPE a); 
void glColor3{b s i f d ub us ui}v(TYPE *v); 
void glColor4{b s i f d ub us ui}v(TYPE *v); 
{}������ѡһ����ֵ���ȣ���ǰ��Ľ��ܣ��� 
����a�DZ���͸���ȵ�Alphaֵ�� 
��������v��׺�ĺ���������ǵIJ�������������ϸʹ�ÿ���ƪ�����ӣ��� 
��glColor3fΪ�������ȡֵ��Χ-1.0--1.0��������ֵ���͵ĺ��� 
�Զ��Ѳ������Ӱ�䵽�����䣬���磺 
 
��׺   ����       MIN    MINӳ��      MAX       MAXӳ�� 
b      1byte����  -128   -1.0         127       1.0 
 
�� ��ɫ����ģʽ 
ʹ�� 
void glIndex{s i f d}(TYPE c); 
void glIndex{s i f d}(TYPE *c); 
������ɫ�������ѡȡ��ɫ�����õ�ǰ��ɫ����ֵ����ɫ��ţ������� 
����ʱȡģ�� 
 
ǰ���������Ӷ���RGBģʽ������������һ����ɫ��������ӣ� 
 
 
 
 
//sample.cpp 
//////////////////////////////                                
#include "glos.h" 
#include <GL/gl.h> 
#include <GL/glaux.h> 
#include "windows.h" 
void myinit(void); 
void InitPalette(void); 
void CALLBACK  display(void); 
void CALLBACK  reshape(GLsizei w,GLsizei h); 
 
void myinit(void) 
{ 
    auxInitDisplayMode(AUX_SINGLE|AUX_INDEX); 
        auxInitPosition(0,0,500,500); 
        auxInitWindow("sample1"); 
        glClearColor(0.0,0.0,0.0,0.0); 
        glClear(GL_COLOR_BUFFER_BIT); 
        glShadeModel(GL_FLAT);//GL_FLAT��ɫģʽ 
} 
 
void CALLBACK reshape(GLsizei w,GLsizei h) 
{ 
if(w<=500&&h<=500) 
glViewport(0,0,w,h); 
if(w>500&&h<=500) 
glViewport(0,0,500,h); 
if(w<=500&&h>500) 
glViewport(0,0,w,500); 
if(w>500&&h>500) 
glViewport(0,0,500,500); 
 
 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
if(w<=h) 
 glOrtho(-20.0,20.0,-20.0*(GLfloat)h/(GLfloat)w, 
         20.0*(GLfloat)h/(GLfloat)w,-50.0,50.0); 
else 
  glOrtho(-20.0*(GLfloat)h/(GLfloat)w, 
         20.0*(GLfloat)h/(GLfloat)w,-20.0,20.0,-50.0,50.0); 
 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
} 
 
void draw(void) 
{ 
GLint n; 
 
//���ȸ�����ȵ������Ϣ 
GLfloat pp[8][2]={{7.0,-7.0},{0.0,-10.0},{-7.0,-7.0},{-10.0,0.0}, 
{-7.0,7.0},{0.0,10.0},{7.0,7.0},{10.0,0.0}}; 
 
//�Ȼ�ǰ�����㣬Ȼ����ѭ����ȡǰ������������飩��Ϣ���� 
//����ͼ�� 
glBegin(GL_TRIANGLE_FAN); 
 glVertex2f(0.0,0.0); 
 glVertex2f(10.0,0.0); 
 for(n=0;n<8;n++) 
 { 
 
//ÿ�δ���ɫ���ұ����ҳ�����ɫ��Ȼ���������ɫ��������� 
//ע��glVertex2fv()��v��׺��ʹ�ã���ǰû��������v��׺��� 
//�����Ǹ����������飩 
 glIndexi(n+1); 
 glVertex2fv(pp[n]); 
 } 
 glEnd(); 
} 
 
void InitPalette(void) 
{ 
//���DZ����ӵĹؼ��ʼ����ɫ���ұ?����һ������ 
//��8����ɫ���Ǵ�������Ľ��� 
GLint i; 
static GLfloat rgb[][3]={{0.0,0.0,0.2},{0.0,0.0,0.4},{0.0,0.0,0.6}, 
{0.0,0.0,1.0},{0.0,0.2,1.0},{0.0,0.4,1.0},{0.0,0.8,1.0},{0.0,1.0,1.0}}; 
 
//���ü򵥵ĸ���⺯������ϵͳ��ɫ�壬�Ѹղ�8����ɫ��Ϊȫ�� 
//��ɫ��������� 
for(i=0;i<8;i++) 
auxSetOneColor(i+1,rgb[i][0],rgb[i][1],rgb[i][2]); 
} 
 
void CALLBACK display(void) 
{ 
//���ȵ����Զ����InitPalette()��ʼ����ɫ�� 
InitPalette(); 
glClearColor(0.0,0.0,0.0,1.0); 
glClear(GL_COLOR_BUFFER_BIT); 
 
glLoadIdentity(); 
draw(); 
glFlush(); 
} 
 
void main(void) 
{ 
    myinit(); 
    auxReshapeFunc(reshape); 
    auxMainLoop(display); 
} 
//end of sample 
�´ν�����OPENGL�Ĺ��պͲ���Ч��һ������3D�Ľ��ݣ� 
��ҿ���ѽ ...... 
 
-- 
�� ��Դ:��BBS ˮľ�廪վ bbs.net.tsinghua.edu.cn��[FROM: 166.111.74.90] 

BBSˮľ�廪վ�þ�����

�� ��Դ: �й�ƴ�BBSվ [bbs.ustc.edu.cn]
Technical Details
Message-ID: <980505.yWbRd$PBBS@bbs.ustc.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,5d987c5344b78ed2,start
X-Google-Attributes: gidfc86e,public
From: Ambi_A@bbs.ustc.edu.cn (����)
Subject: OPENGL(5)
Date: 1998/05/05
Message-ID: <980505.yWbRd$PBBS@bbs.ustc.edu.cn>
X-Deja-AN: 350408752
Organization: �й�ƴ�BBSվ
Newsgroups: cn.bbs.comp.program