Tag: opengl

我必须包含哪些库来访问GLUT / OpenGL(没有XCode的Mac)?

标题是问题的核心,但问题来自于我从SpaceSimulator.net的教程中获得的代码。 我会在这里发给你的。 #include #include #include #include #include typedef struct { float x,y,z; } vertex_type; typedef struct { int a,b,c; } polygon_type; #define MAX_POLYGONS 2000 polygon_type polygon[MAX_POLYGONS]; #define MAX_VERTICES 2000 vertex_type vertex[MAX_VERTICES]; typedef struct { vertex_type vertex[MAX_VERTICES]; polygon_type polygon[MAX_POLYGONS]; } obj_type,*obj_type_ptr; int screen_width, screen_height, filling; GLfloat rotation_x_increment, rotation_y_increment, rotation_z_increment; GLfloat rotation_x, rotation_y, rotation_z; obj_type cube = […]

如何在openGL中使用纹理图像加载和填充立方体

我有一个带有立方体的网格,我想用两种不同的颜色和3种不同的图像(.bmp)填充立方体。 所以每个立方体都充满了颜色或图像。 我写了一个代码,当我按下按钮时,网格中充满了5种不同的颜色。 任何人都可以告诉我如何更改我的代码以3个不同的图像(随机)填充网格? 这是我的代码: void randomFilling(); void myprint(); struct square{ int v1x, v1y; int v2x, v2y; int v3x, v3y; int v4x, v4y; int color; }; struct square Squares[12][15]; struct flags{ int b; }flags; void drawScene(); void findVerticesPosition(){ int counter=0; for(int i=0; i<600; i+=40){ for(int j=0; j<480; j+=40){ Squares[j/40][i/40].v1x = i; Squares[j/40][i/40].v1y = j; Squares[j/40][i/40].v2x […]

你如何解决这个opengl必要性(c)涉及知道用户点击桌面游戏中的哪个方块?

所以我有这个板,玩桌面游戏……问题是,我怎么知道用户点击了哪个方块? 我知道x和y坐标,但我如何自动化它,而不需要追捕每个方块的特定位置。 (另外,电路板的尺寸是可变的…所以它可以有很多正方形,或者很少,但是电路板总是具有相同的高度和宽度,也就是说,从左到右运行的正方形数量相同从上到下运行的正方形数量)。 非常感谢堆栈溢出:)

glew之前包含gl.h,但GLFW需要gl.h

我记得你订购#include-s的方式。 好吧,我有点麻烦了。 我有这两个标题: #include #include 如果我运行它,我得到一个错误,说gl.h包含在glew.h之前。 但是如果我颠倒那两个的顺序以便glew.h是第一个,我会得到很多错误。 我只是在考虑搜索#define-s的含义,所以我只能对我说:#define whatineed 0x0000x。 如何使用标题排列来解决此问题。 狩猎和使我的定义安全的方法?

如何检测openGL /卡是否支持2的非功率?

检测图形卡和已编译的openGL二进制文件是否支持在运行时不是2的幂的纹理的最佳方法是什么?

在简单的OpenGL应用程序中“访问冲突读取位置0x000000000”

当使用缓冲区对象存储顶点数组时,我在openGL中遇到问题。 当我运行代码时,会出现一个窗口,显示消息“ 访问冲突读取位置0x000000000 ”,当我将光标移动到glGenBuufers函数旁边的箭头时,我看到描述: 这是当该线程从当前函数返回时执行的下一个语句 。 码: int frame=0; void display(); void datasource(); GLuint vbo; void datasource() { GLfloat vertex1[]={-1.000000 ,0.500000 ,-0.700000 ,0.500000 ,-1.000000 ,0.800000 ,-0.700000 ,0.800000 ,-0.400000 ,0.500000 ,-0.100000 ,0.500000 ,-0.400000 ,0.800000 ,-0.100000 ,0.200000 ,0.500000 ,0.500000 ,0.500000 ,0.200000 ,0.800000 ,0.500000,0.800000 ,0.800000 ,0.800000 ,0.500000 ,1.100000 ,0.500000 ,0.800000 ,0.800000 ,1.100000,0.800000 }; glGenBuffers(1,&vbo); glBindBuffer(GL_ARRAY_BUFFER,vbo); glBufferData(GL_ARRAY_BUFFER,sizeof(vertex1),vertex1,GL_STATIC_DRAW); } void […]

如何将网格规范化为-1到1,然后从规范化网格恢复为原始网格?

我有一个X,Y,Z格式的网格模型。 让我们说。 Points *P; 在第一步中,我想将此网格规范化为(-1,-1,-1)到(1,1,1)。 这里标准化意味着将此网格拟合到(-1,-1,-1)到(1,1,1)的框中。 然后我对标准化网格进行一些处理,最后我想将尺寸恢复为与原始网格相似。 步骤1: P =原始网格尺寸; 步骤2: nP =归一化(P); //从(-1,-1,-1)到(1,1,1) 步骤3: cnP =用(nP)做某事,顶点数增加或减少。 步骤4:原始网格尺寸=恢复(cnP); //尺寸应与原始网格相同 我怎样才能做到这一点?

GLUP的原始OpenGL等价物?

如果没有Glu,我怎么能像GluPerspective一样呢? 谢谢 例如:gluPerspective(45.0,(float)w /(float)h,1.0,200.0);

如何在没有Mesa的情况下设置OpenGL开发环境

根据我在这里读到的内容: http : //www.linuxquestions.org/questions/linux-software-2/opengl-vs-mesa-whats-the-diff-351037/ Mesa是软件渲染,而驱动程序OpenGL是硬件渲染。 我遇到的每个教程都只展示了如何安装Mesa。 如何设置真正的(硬件加速)openGL? 安装驱动程序是否安装了标题? 如果是这样,哪个标题? 如果我有一个用mesa编译的程序,我是否必须重新编译才能利用硬件加速? 如果安装驱动程序安装所需的库和标题,台面会发生什么? 从指向网站上的最后一篇文章:“这是否意味着如果我安装了NVidia驱动程序,我应该删除mesa包?” 此外,现在openGL现在是版本4和5,但我找不到任何教程,显示如何为这些版本创建上下文,只有版本3最大… 就像你可以看到的,我不太确定这是如何工作的。 最后一件事,这本书: http : //glprogramming.com/red/是针对哪个版本的openGL? 指南版本是1.1,但它没有说它是针对哪个版本编写的。

使用单个光源渲染3D立方体的最简单方法是什么?

下面描述的是一个三维立方体的蹩脚Photoshop模型。 以下是我的参数:解决方案必须…… …编译并运行我的小而忠实的Macbook Air, 而不使用像葡萄酒这样的Windows模拟器 …生成一个窗口,在运行时看起来与上面的模型相当接近 …只使用免费工具(“免费”,如“演讲” 和 “啤酒”) …使用C(不是C ++或C#) …能够从编译时定义的不同角度渲染立方体,可能使用预处理器宏 ……利用GPU WEEE! 潜在资源: http://www.gamedev.net/topic/579689-sdl–opengl-rendering-a-cube/ http://www.evl.uic.edu/arao/cs594/sdlglsl.html