當前位置:首頁 » 編程軟體 » opengl編程

opengl編程

發布時間: 2022-01-14 01:09:18

『壹』 C語言windows,OpenGL編程

  1. 查找 MSDN 可以得知,MSG 裡面的 pt 坐標是相對於窗口的左上角的;

2. 至於聲音控制和播放,可以使用 Windows 自帶的 MCI API,或者使用 DirectSound 來播放,我推薦你使用 un4seen 的 BASS,簡單實用強大,一兩個函數就可以播放音效了;

3. 你要使用 alpha blend 與桌面進行鏤空運算,就必須首先獲得桌面的窗體句柄,OpenGL 的 alppha 運算我不是很懂,不過 Direct3D 的話就簡單多了;

4. 屏幕常亮,其實就是阻止系統進入休眠狀態,每當系統要進入休眠狀態之前,都會向系統的所有窗口發送一條消息,你攔截這條消息,進行特別的處理就可以防止系統進入休眠了,至於是什麼消息,請查看 MSDN,我也好久沒用過這條消息了;

5.bmp 文件可以保存 alpha 通道,使用 32bit 色深的 bmp 文件就可以了,RGB 分別 8bit,alpha 通道 8bit,不過說到 alpha 通道,tga 或者 png 圖片更加合適,因為他們可以進行無損壓縮

6.用GetPocAddress導出函數,只能用類型強制轉換,這個是 windows 的原則,我們只能去迎合它了 ...

7. 執行 NULL 指針的話,不同的系統會有不同的反應,XP 是直接程序崩潰,Vista 或者以上的系統,就會提示無響應

8. 如果你建立的工程是 Win32 窗口程序,那麼就不會有 DOS 窗口,如果你建立的是 Win32 控制台程序,那麼就會有 DOS 窗口;如果你使用 OpenGL 實用庫來創建 OpenGL 程序,那個 DOS 窗口是無法消除的,它可以幫助你進行錯誤排查

9. 不要用 Dev C++ 了,用 VS2010 吧,這是行業規范


最後,祝樓主學習愉快

『貳』 OPENGL編程問題

//旋轉直線

#include <gl/glut.h>
GLfloat spin = 0.0;
GLdouble pt[3][3]={0};
int st=0;
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f(1.0, 1.0, 1.0);
glPointSize(5);
switch(st){
case 3:
glTranslated(pt[2][0],pt[2][1],pt[2][2]);
glRotatef(spin,0,0,1);
glTranslated(-pt[2][0],-pt[2][1],-pt[2][2]);
//點3
glBegin(GL_POINTS);
glVertex3dv(pt[2]);
glEnd();
case 2:
//線
glBegin(GL_LINES);
glVertex3dv(pt[0]);
glVertex3dv(pt[1]);
glEnd();
//點2
glBegin(GL_POINTS);
glVertex3dv(pt[1]);
glEnd();
case 1:
//點1
glBegin(GL_POINTS);
glVertex3dv(pt[0]);
glEnd();
break;
}
glPopMatrix();
glutSwapBuffers();
}
void spinDisplay(void)
{
spin = spin + 1.0;
if (spin > 360.0)
spin -= 360.0;
glutPostRedisplay();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void toWorldCoords(int x, int y, GLdouble w[3])
{
GLint viewport[4];
GLdouble mv[16],proj[16];
GLint realy;
glGetIntegerv(GL_VIEWPORT, viewport);
glGetDoublev(GL_MODELVIEW_MATRIX, mv);
glGetDoublev(GL_PROJECTION_MATRIX, proj);
realy = viewport[3] - (GLint) y - 1;
gluUnProject(x,realy,0,mv,proj,viewport, w,w+1,w+2);
}
void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
{
switch(st)
{
case 2:
glutIdleFunc(spinDisplay);
case 1:
case 0:
toWorldCoords(x,y,pt[st++]);
glutPostRedisplay();
break;
}
}
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}

『叄』 OpenGL編程問題

#include<iostream>下面加一行using namespace std;
前綴 數據類型 相應C語言類型 OpenGL類型
b 8-bit integer signed char GLbyte
s 16-bit integer short GLshort
i 32-bit integer long GLint,GLsizei
f 32-bit floating-point float GLfloat,GLclampf
d 64-bit floating-point double GLdouble,GLclampd
ub 8-bit unsigned integer unsigned char GLubyte,GLboolean
us 16-bit unsigned integer unsigned short GLushort
ui 32-bit unsigned integer unsigned long GLuint,GLenum,GLbitfield

『肆』 opengl編程指南適合初學者嗎

其實我覺得NeHe的OpenGL指南應該是比較容易理解和入門的~
如果常式運行有問題,最好找一下問題根源所在~
我記得我當初學openGL的時候(做虛擬現實相關的破爛玩意兒~),只有一點點的WINDOWS編程基礎(自學的《windows程序設計》這本書),用的也是nehe的教程,感覺用來入門還算不錯的~
不過後來的工作,再也沒有用過openGL。。。都淡忘了 =。=

『伍』 OpenGL編程

1.將開發庫中的.h文件拷貝到Visual C++2008的\Include\GL目錄中
2.將.lib文件拷貝到Visual C++2008的\lib目錄中
3.將.dll文件拷貝到操作系統的system32目錄中

先看一下裡面有沒有對應的 glaux.h glaux.lib 沒有的話網上下一個,或者給我郵箱我發給你也行

『陸』 如何在windows上用C/C++進行OpenGL編程

windows可以opengl編程。上網站下載glut壓縮包後,解壓,把glut32.dll放在Windows的system32目錄下,將glut32.lib放在C:\program files\Microsoft Visual Studio\VC98\Lib目錄中,將glut.h放在C:\programfiles\Microsoft Visual Studio\VC98\Include\GL目錄中。
VC工程項目的設置
為了使用OpenGL,我們需要在項目中加入相關的Lib文件:glut32.lib。方法如下:選中菜單
Project->Settings項,在link選項卡中的Object/Library moles欄中加入glut32.lib。
選擇菜單File中的New選項,彈出一個分頁的對話框,選中頁Files中的C++ sourcefile,填入
文件名,鉤選添加到剛才建的那個工程里,然後就可以開始編程了。
新建一個項目的方法如下:選擇菜單File中的New選項,彈出一個分頁的對話框,選中頁
Projects中的Win32 Console Application項,然後填入你自己的Project name,回車即可。VC為
你創建一個工作區(WorkSpace),你的項目就放在這個工作區里。 然後,為項目添加文件即可。

『柒』 opengl編程高手請進!

OpenGL1.5用戶指南英文版
下載地址
http://www.caenet.cn/data/Data.aspx?ID=344

『捌』 求<<opengl編程指南>>中文的pdf

很清晰,中文版本。可以先看看再採納。 望採納 本來是直接給你附件的。現在網路好像不能添加附件了。給我網址吧

『玖』 為什麼《OpenGL編程指南》(原書第8版)中第一個OpenGL程序triangles.cpp我原封不動的敲上去還報錯

你看的這種書,附帶了很多自己的源代碼庫.你的程序要鏈接上這種庫才能用啊.
看來你還沒怎麼用過vc, 這種鏈接lib 什麼的是基本功.
要先熟悉後才能再研究更深的東西.
你身邊有高手的話讓他給你演示一下.

『拾』 OpenGL編程使矩形旋轉

已知對角線的兩點的坐標,那麼就知道四個點的坐標了呀,(25,25) (25,75) (75,75) (75,25),你可以這么寫代碼

glPushMatrix();
glRotatef……//旋轉矩陣
glScalef……//縮放矩陣
glBegin……
glVertex2f();
glVertex2f();
glVertex2f();
glVertex2f();
glEnd();

1、glScale —— 將新的縮放矩陣乘以當前矩陣

有三個參數,為縮放因子

2、glRotate------旋轉矩陣

有四個參數,第一個是角度,其他的分別代表x,y,z軸,表示繞著哪個軸進行旋轉

熱點內容
ubuntu交叉編譯鏈 發布:2024-09-21 00:39:36 瀏覽:13
優酷緩存視頻導出 發布:2024-09-21 00:31:37 瀏覽:873
有線電視的二級密碼是多少 發布:2024-09-21 00:31:28 瀏覽:778
安卓i管家在哪裡 發布:2024-09-21 00:29:05 瀏覽:691
伺服器推薦我的世界手機版中國版 發布:2024-09-21 00:26:00 瀏覽:270
java是如何藉助jvm編譯的 發布:2024-09-21 00:18:09 瀏覽:957
php日期大小 發布:2024-09-21 00:00:51 瀏覽:359
js編程技術 發布:2024-09-20 23:57:57 瀏覽:487
挖槽的編程 發布:2024-09-20 23:52:53 瀏覽:251
linux命令行安裝 發布:2024-09-20 23:42:38 瀏覽:282