草庐IT

c++ - 将倒置场景渲染到帧缓冲区

我需要一些帮助来将倒置场景渲染到帧缓冲区。我想做一个镜面效果。结果是:初始化帧缓冲区:GLuintFramebufferName=0;glGenFramebuffers(1,&FramebufferName);glBindFramebuffer(GL_FRAMEBUFFER,FramebufferName);GLuintrenderedTexture;glGenTextures(1,&renderedTexture);glBindTexture(GL_TEXTURE_2D,renderedTexture);glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,SCR

c++ - 计算机图形行业的人们使用什么进行光线追踪?

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion去年我参加了计算机图形学类(class)(研究生水平)。我们花了整个学期构建光线追踪器并向其添加功能。我们用C++从头开始构建,大概是为了更好地理解底层数据结构和算法。这是我的问题:如果我要在计算机图形行业找到一份工作,如果我开始从头开始构建一切像这样的光线追踪,人们会认为我疯了吗?是否有类似于OpenGL的支持光线追踪的图形库和框架?OpenGL本身是否支持光线追踪?我的类(class)教授

c++ - 将现有的 C++ openGL 项目从 glut/freeglut 转换为 glfw

我想将我的科学3D应用程序从Freeglut升级到GLFW,但我担心隐藏的冲突或数据丢失,实际上我的应用程序与Freeglut一起工作时非常棒,我没有任何问题,但推荐使用GLFW所有现代书籍和教程中的现代OpenGL(3.0+)。我查看了GLFWAPI,它看起来像带有glfw*前缀的Glut,但我不太确定。所以我想到了三个问题:IsitworthtobreakmyexistingprojectforGLFWsake,orsticktofreeglut?AmIgoingtolossanyfeaturefromglut?IsGLFWcompatiblewithGTK+?(becausemy

c++ - glUniform 无法设置采样器值

我正在使用OpenGL和GLSL在简单的网格上绘制纹理。我的问题是,当我使用glUniform1i设置sampler2Duniform的值时,它没有被设置。例如在这段代码中:glUseProgram(programObject);glUniform1i(glGetUniformLocation(programObject,"texture"),1);GLintval;glGetUniformiv(programObject,glGetUniformLocation(programObject,"texture"),&val);printf("Valueis%d\n",val);命令行输

c++ - glGenFramebuffers 中的段错误

我遇到了段错误,但无法弄清楚原因。与我一起工作的人在OSX机器上编译和运行正确。gdbbacktrace告诉我它来自这部分代码,特别是来自glGenFramebuffers://RenderthewarpedtexturemappedtrianglestoframebufferGLuintmyFBO;GLuintmyTexture;glEnable(GL_TEXTURE_2D);glGenTextures(1,&myTexture);glBindTexture(GL_TEXTURE_2D,myTexture);glTexParameteri(GL_TEXTURE_2D,GL_TEXTU

c++ - 创建 OpenGL 4.3 上下文会使 GLX 崩溃

我正在使用SDL2和C++11构建一个游戏引擎(作为个人项目,用于娱乐和练习),我想做的一件事是尝试让图形驱动程序使用最新支持的OpenGL版本,并根据版本改变引擎图形部分的渲染方式。这样我就可以在相关和有用的地方使用OpenGL的最新功能,而且还支持旧硬件。我能想到的有两种方法:检测最新支持的OpenGL版本并使用它,但我想不出任何方法来做到这一点。是的,我试过谷歌。使用试错法,我从最新版本(4.3,但我的GTX460最多只支持4.2,即使我更新了驱动程序)开始,如果失败(我通过检查SDL以返回NULL上下文),我降低版本号并重试。我使用的方法(#2)在创建4.3上下文时立即失败。我

c++ - 将骨骼数据发送到 glsl 着色器

好的,所以我能够加载一个带有顶点、纹理坐标和法线的基本模型,并毫无问题地渲染它。但是,当我尝试输入一些骨骼信息时,当我尝试在着色器中操作骨骼数据时,骨骼数据似乎已损坏(或其他?)。这是我将数据加载和渲染到opengl的代码(设置着色器和发送View矩阵、世界矩阵等在另一个类中完成):/**Mesh.cpp**Createdon:2011-05-08*Author:jarrett*/#include#include"../common/utilities/AssImpUtilities.h"#include"Mesh.h"namespaceglr{namespaceglw{Mesh::M

c++ - SDL_TTF 绘制垃圾

前几天我问了一个问题,关于使用SDL渲染TTF字体,并被指向SDL_TTFL我已经尝试使用SDL_TTF库,但我得到的只是屏幕上的垃圾我已经包含了我的着色器,这对于这个程序来说非常简单,还有我用来将文本加载到表面并将其绑定(bind)到纹理的片段。我根本不想在这里做任何疯狂的事情。你能看到我做错了什么吗?我不太确定如何调试着色器等。片段着色器(frag.glsl):#version330invec2texCoord;invec4fragColor;outvec3finalColor;uniformsampler2DmyTextureSampler;voidmain(){finalCol

c++ - 使用 SDL2 指定 OpenGL 版本

我正在使用装有OSX10.9.2的Macbookair我的显卡是(IntelHDGraphics40001024MB)Apple表示,具有我的规范的Macbookair最高支持Opengl4.1,您可以在此处阅读->http://support.apple.com/kb/HT5942.然而,当我使用SDL2并强制系统使用opengl3.2以及当我通过glGetString()查询OpenGL版本时,我得到以下行:2.1INTEL-8.24.11我的代码:#include#include#includeusingnamespacestd;voidsdldie(constchar*msg)

c++ - OpenGL 混合在纹理周围创建白色边框

我正在尝试使用OpenGL(C++)将两个纹理渲染到一个矩形上。不过,我在混合这两者时遇到了一些麻烦。第一张图片来自.jpg文件(https://learnopengl.com/img/textures/container.jpg)。此图像没有alphachannel。第二张图片来自.png文件(https://learnopengl.com/img/textures/awesomeface.png),并且确实有一个alphachannel。问题是当我尝试混合两个图像时,它会在透明图像周围创建一个白色边框。我尝试了几种不同的混合模式(正如OP在这个问题中所推荐的:Alphablendi