OpenGL贴图问题 初学者,不知道怎么用OpenGL将位图贴到球体上还不影响球体转动,就像地球仪一样,希望大侠指点,最好能有源代码和注释~~~额~~要用C语言写的~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个http://download.csdn.net/detail/waitformyfriends/3721978 #undef UNICODE#include <windows.h> #include <GL/gl.h>#include <GL/glu.h>#include <GL/glaux.h>#include <GL/glut.h> void myinit(void);void makeStripeImage(void);void CALLBACK display(void);void CALLBACK myReshape(GLsizei w, GLsizei h); #define stripeImageWidth 64GLubyte stripeImage[3*stripeImageWidth]; void makeStripeImage(void){ int j; for (j = 0; j < stripeImageWidth; j++) { stripeImage[3*j] = 255; stripeImage[3*j+1] =255-2*j; stripeImage[3*j+2] =255; }} GLfloat sgenparams[] = {1.0, 1.0, 1.0, 0.0}; void myinit(void){ glClearColor (0.0, 0.0, 0.0, 0.0); makeStripeImage(); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexImage1D(GL_TEXTURE_1D, 0, 3, stripeImageWidth, 0, GL_RGB, GL_UNSIGNED_BYTE, stripeImage); glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); glTexGenfv(GL_S, GL_OBJECT_PLANE, sgenparams); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_1D); glEnable(GL_CULL_FACE); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); glFrontFace(GL_CW); glCullFace(GL_BACK); glMaterialf (GL_FRONT, GL_SHININESS, 64.0);} void CALLBACK display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix (); glRotatef(25.0, 1.0, 0.0, 0.0); auxSolidTeapot(1.5); glPopMatrix (); glFlush();} void CALLBACK myReshape(GLsizei w, GLsizei h){ float a=3.5; glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h) glOrtho (-a, a, -a*(GLfloat)h/(GLfloat)w, a*(GLfloat)h/(GLfloat)w, -a, a); else glOrtho (-a*(GLfloat)w/(GLfloat)h, a*(GLfloat)w/(GLfloat)h, -a, a, -a, a); glMatrixMode(GL_MODELVIEW); glLoadIdentity();} void main(void){ auxInitDisplayMode (AUX_SINGLE | AUX_RGBA); auxInitPosition (0, 0, 500, 500); auxInitWindow ("Teapot TextureMapping"); myinit(); auxReshapeFunc (myReshape); auxMainLoop(display);} 这个显示无法编译,找不到exe文件 加上#pragma comment(lib, "openGL32.lib")#pragma comment(lib, "glu32.lib")#pragma comment(lib, "glaux.lib") 编译应该没问题了 求一个VC的爬虫 vc ++中请教怎样实现鼠标左键单击画直线,双击直线为选中状态,且直线变成虚线 初学多线程编程,求实例或推荐书籍,多谢! 100分求 模拟鼠标发送双击消息给CTreeCtrl中指定ITEM的代码 字符串如何换行————————? 为什么对话框中的cedit中的信息先显示,后清除的话,怎么清除不了呢? 两个问题:1.句柄有泄漏怎么调试? 一个初学者的问题 一个字符串赋值的问题(在线等待)! 急!!!请各位大虾给我一个CMap类的例子,不胜感激!! 有关OnLButtonDown和OnLButtonUp函数... 为什么内存错误//CMFCToolBarImages
http://download.csdn.net/detail/waitformyfriends/3721978
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#include <GL/glut.h>
void myinit(void);
void makeStripeImage(void);
void CALLBACK display(void);
void CALLBACK myReshape(GLsizei w, GLsizei h);
#define stripeImageWidth 64
GLubyte stripeImage[3*stripeImageWidth];
void makeStripeImage(void)
{
int j;
for (j = 0; j < stripeImageWidth; j++)
{
stripeImage[3*j] = 255;
stripeImage[3*j+1] =255-2*j;
stripeImage[3*j+2] =255;
}
}
GLfloat sgenparams[] = {1.0, 1.0, 1.0, 0.0};
void myinit(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
makeStripeImage();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage1D(GL_TEXTURE_1D, 0, 3, stripeImageWidth, 0, GL_RGB, GL_UNSIGNED_BYTE, stripeImage);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGenfv(GL_S, GL_OBJECT_PLANE, sgenparams);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_1D);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glFrontFace(GL_CW);
glCullFace(GL_BACK);
glMaterialf (GL_FRONT, GL_SHININESS, 64.0);
}
void CALLBACK display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix ();
glRotatef(25.0, 1.0, 0.0, 0.0);
auxSolidTeapot(1.5);
glPopMatrix ();
glFlush();
}
void CALLBACK myReshape(GLsizei w, GLsizei h)
{
float a=3.5;
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho (-a, a, -a*(GLfloat)h/(GLfloat)w, a*(GLfloat)h/(GLfloat)w, -a, a);
else
glOrtho (-a*(GLfloat)w/(GLfloat)h, a*(GLfloat)w/(GLfloat)h, -a, a, -a, a);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void main(void)
{
auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);
auxInitPosition (0, 0, 500, 500);
auxInitWindow ("Teapot TextureMapping");
myinit();
auxReshapeFunc (myReshape);
auxMainLoop(display);
}
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")
编译应该没问题了