ALPHA TEST来实现透明纹理
[ 2005-06-16 00:22:47 | 作者: Admin ]
将你原始的图片,透明部分用RGB(0,0,0)(黑色)填充.
不要使用有损压缩的图片,如JPG格式.不然效果会很差的.
然后在初始化OGL的地方,加入如下代码:
效果图:
不要使用有损压缩的图片,如JPG格式.不然效果会很差的.
然后在初始化OGL的地方,加入如下代码:
glAlphaFunc(GL_GREATER,0.1f); // Set Alpha Testing (To Make Black Transparent)
glEnable(GL_ALPHA_TEST); // Enable Alpha Testing (To Make Black Transparent)
glEnable(GL_ALPHA_TEST); // Enable Alpha Testing (To Make Black Transparent)
效果图:
IPICTURE 基本代码
[ 2005-06-16 00:10:15 | 作者: Admin ]
纹理载入函数, 可以载入 BMP, EMF, GIF, ICO, JPG, WMF 等格式, 还可以载入网上的图片.
首先包含两个头文件
阅读全文...
首先包含两个头文件
#include <olectl.h>
#include <math.h>
#include <math.h>
int BuildTexture(char *szPathName, GLuint &texid) // Load Image And Convert To A Texture
{
HDC hdcTemp; // The DC To Hold Our Bitmap
HBITMAP hbmpTemp; // Holds The Bitmap Temporarily
IPicture *pPicture; // IPicture Interface
...{
HDC hdcTemp; // The DC To Hold Our Bitmap
HBITMAP hbmpTemp; // Holds The Bitmap Temporarily
IPicture *pPicture; // IPicture Interface
阅读全文...
创键一个CUBE MAP.
[ 2005-06-15 23:48:00 | 作者: Admin ]
代码不全,只是个粗略的步骤,不能直接应用到程序中.
GLuint cubemap;
glGenTextures(1, &cubemap);
glBindTexture(GL_TEXTURE_CUBE_MAP_ARB);
for (int i = 0; i < 6; i++)
glTexImage2D(TEXTURE_CUBE_MAP_POSITIVE_X_ARB + i, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, cubeFaces[i]);
cgGLSetTextureParameter(cgGetNamedParameter(pixelShader, envMap), cubemap);
glGenTextures(1, &cubemap);
glBindTexture(GL_TEXTURE_CUBE_MAP_ARB);
for (int i = 0; i < 6; i++)
glTexImage2D(TEXTURE_CUBE_MAP_POSITIVE_X_ARB + i, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, cubeFaces[i]);
cgGLSetTextureParameter(cgGetNamedParameter(pixelShader, envMap), cubemap);
得到显卡品牌
(char*)glGetString(GL_RENDERER);
得到显卡制造商
(char*)glGetString(GL_VENDOR);
得到OGL的版本号
(char*)glGetString(GL_VERSION);
因为glGetString()返回类型是 GLubyte * ,所以要变成字符串须要强制转换 (char*) glGetString().
(char*)glGetString(GL_RENDERER);
得到显卡制造商
(char*)glGetString(GL_VENDOR);
得到OGL的版本号
(char*)glGetString(GL_VERSION);
因为glGetString()返回类型是 GLubyte * ,所以要变成字符串须要强制转换 (char*) glGetString().
OGL的一个读3DS文件的类
[ 2005-06-14 01:04:45 | 作者: Admin ]
注释都很详细,可以直接拿来用.
阅读全文...
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <fstream>
#include <vector>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
#include <crtdbg.h>
#include <olectl.h>
#include <math.h>
using namespace std;
#define MAX_TEXTURES 100 // 最大的纹理数目
...#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <fstream>
#include <vector>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
#include <crtdbg.h>
#include <olectl.h>
#include <math.h>
using namespace std;
#define MAX_TEXTURES 100 // 最大的纹理数目
阅读全文...
OGL环境下,3D视野和2D视野之间的切换
[ 2005-06-14 00:59:01 | 作者: Admin ]
第一个函数是开始2D视野,第二个函数是开始3D视野.
阅读全文...
//----------------------------------------------------------------------------
//Begin the ortho view
//----------------------------------------------------------------------------
void BeginOrthoView()
{
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0, 800, 0, 600);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
...//Begin the ortho view
//----------------------------------------------------------------------------
void BeginOrthoView()
{
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0, 800, 0, 600);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
阅读全文...











