标签: opengl

opengl多个纹理

我想在我的场景中添加多个纹理我有一个纹理工作,但我不知道如何包含其他纹理.

#include <windows.h>
#include <gl\gl.h>
#include <gl\glut.h>

#include <stdlib.h>
#include <iostream> 

void init(void);
void display(void);
void keyboard(unsigned char, int, int);
void resize(int, int);
void drawcube(float, float, float, float, float, float, int);

int is_depth;

#define ROAD 0


struct Image 
{
    unsigned long size_x;
    unsigned long size_y;
    char *data;
};

typedef struct Image Image;

const int textureCount = 1;

Image myTextureData[textureCount];
GLuint theTexture[textureCount];


char* textureFilenames[textureCount] = {"road.bmp"};


int main (int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(600, 600);
    glutInitWindowPosition(40, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl textures

-2
推荐指数
1
解决办法
690
查看次数

寻找使用FTGL和Qt(OpenGL)的例子

我需要做一个简单的应用程序,将3d字体渲染为图像.推荐的lib是FTGL,我如何将它与3dQt结合起来?

c++ opengl fonts qt ftgl

-2
推荐指数
1
解决办法
1418
查看次数

glBegin(GL_TRIANGLES)不呈现任何内容

我试图导入.obj文件,但甚至无法呈现三角形.这是我正在尝试做的只是为了测试它是否可以展示一些东西.

glBegin(GL_TRIANGLES);
    glColor3f(0.5, 0.5, 0.5);
    glVertex3f(0, 0, 0);
    glVertex3f(1, 1, 1);
    glVertex3f(2, 2, 2);
glEnd();
Run Code Online (Sandbox Code Playgroud)

这不会显示任何内容.但是,当我为GL_LINES更改GL_TRIANGLES时,它会显示该行.

如何显示三角形?

语言:C++

操作系统:Mac 10.7.3

c++ opengl

-2
推荐指数
1
解决办法
5205
查看次数

没有GLUT或GLEW的OpenGL VBO

我正在尝试使用OpenGL创建我自己设计的3D环境模拟器,但是我的设计要求我能够直接控制运行时循环.

我正在尝试学习如何在OpenGL中实现VBO,但我很难找到足够的资源.根据我的发现,几乎每个人都以某种方式使用FreeGLUT或GLEW或GLFW或GL3.h来解决一些特定于平台的问题.

虽然这些选项可能很棒,但我根本不想将其他人的包用于此代码.我想弄清楚如何使用大多数机器上开箱即用的标准的vanilla OpenGL来使用VBO.我可以使用一些帮助来寻找OpenGL中不使用任何外部包的VBO教程.

......在有人建议之前,关于VBO的NeHe第45课使用的折旧代码(glaux)甚至不再编译,所以这不是一个选择.:\

编辑:也许我不清楚,或者我被控制,无论如何......问题的关键在于找到示例,教程或其他资源来教授OpenGL中不支持这些附加包的VBO.认真的人,告诉我"放弃"或"只使用GLEW"......这没有帮助.

opengl vbo

-2
推荐指数
1
解决办法
1902
查看次数

OpenCL是OpenGL和DirectX的快速替代品吗?

我正在制作一个小型Java游戏库,我想制作更多面向Java的绘图的绘图代码,而不是调用一些C++方法来绘制API.无论如何,我担心它可能比其他图形API慢.那么这将是一个不错的选择吗?另一个问题是我找不到有用的OpenCL教程(我需要先学习它),有人知道吗?

java opengl directx opencl

-2
推荐指数
1
解决办法
1022
查看次数

用openGL建模太阳系

我想在c ++和openGL中模拟太阳系,我想知道是否有一种便宜的方法可以返回一个x,y,z向量,我可以用它来更新每个行星的位置帧.

c++ opengl math modeling

-2
推荐指数
1
解决办法
4860
查看次数

等式总是计算为0,即使它不应该

我正在尝试使用lwjgl在屏幕上渲染纹理矩形.我已经注册了纹理并加载了它们.我正在尝试编写一个方法,只使用纹理的指定区域来应用于矩形,这将允许使用spritesheets.我有这个代码来做到这一点:

public static void drawTexturedRectangle(int x, int y, int width,
        int height, int textureX, int textureY, int textureWidth,
        int textureHeight, Texture texture) {

    System.out.println("Drawing tr:"); //console output to check input
    System.out.println("  -input:");
    System.out.println("    -x: " + x);
    System.out.println("    -y: " + y);
    System.out.println("    -width: " + width);
    System.out.println("    -height: " + height);
    System.out.println("    -tex-x: " + textureX);
    System.out.println("    -tex-y: " + textureY);
    System.out.println("    -tex-width: " + textureWidth);
    System.out.println("    -tex-height: " + textureHeight);

    GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getId());
    GL11.glBegin(GL11.GL_QUADS);
    {

        System.out.println("  -rendered:");

        int vx …
Run Code Online (Sandbox Code Playgroud)

java opengl

-2
推荐指数
1
解决办法
67
查看次数

在OpenGL中访问缓冲区

所以我知道你可以使用以下方法生成缓冲区:

GLuint Buffer = 0;
glGenBuffers (1, &Buffer);
Run Code Online (Sandbox Code Playgroud)

我被告知这将在地址中生成1个缓冲区Buffer.我也被告知如果我这样做:

GLuint Buffer = 0;
glGenBuffers (2, &Buffer);
Run Code Online (Sandbox Code Playgroud)

然后它将在地址中生成2个缓冲区Buffer.那么如何访问这个第二个缓冲区呢?

c++ opengl

-2
推荐指数
1
解决办法
65
查看次数

为什么我需要glClear(GL_DEPTH_BUFFER_BIT)

这是我的代码:

#include <GL/glew.h> // include GLEW and new version of GL on Windows
#include <GLFW/glfw3.h> // GLFW helper library
#include <stdio.h>

int main () {
    // start GL context and O/S window using the GLFW helper library
    if (!glfwInit ()) {
        fprintf (stderr, "ERROR: could not start GLFW3\n");
        return 1;
    }

    // uncomment these lines if on Apple OS X
    glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 4);
     glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 1);
     glfwWindowHint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
     glfwWindowHint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

    GLFWwindow* window = glfwCreateWindow (640, 480, "Hello Triangle", …
Run Code Online (Sandbox Code Playgroud)

opengl

-2
推荐指数
1
解决办法
6881
查看次数

为什么glGetAttribLocation为两个不同的属性返回相同的值?

我是OpenGL的初学者,我编写了一个顶点着色器并执行其他操作,例如编译着色器.

顶点着色器:

in vec4 vPosition;
in vec4 vColor;

out vec4 Color;

void main(void){
    gl_Position = vPosition;
    Color = vColor;
}
Run Code Online (Sandbox Code Playgroud)

用C++编写这段代码之后:

GLuint PositionID = glGetAttribLocation(SProgram, "vPosition");
GLuint ColorID = glGetAttribLocation(SProgram, "vColor");

cout << "vPosition location: " << PositionID << endl << "vColor location: " << ColorID << endl;
Run Code Online (Sandbox Code Playgroud)

结果非常有趣,两个相同的位置:

vPosition location: 4294967295
vColor location: 4294967295
Run Code Online (Sandbox Code Playgroud)

那是什么原因?

c++ opengl opengl-3

-2
推荐指数
1
解决办法
146
查看次数

标签 统计

opengl ×10

c++ ×6

java ×2

directx ×1

fonts ×1

ftgl ×1

math ×1

modeling ×1

opencl ×1

opengl-3 ×1

qt ×1

textures ×1

vbo ×1