草庐IT

opengl_test

全部标签

c++ - 在 OpenGL 中绘制 N 角星 - C++

我写了一段代码,输入n,画出N个尖星,就像这个:whenn=5andfiled每当n=7或8或16或25时的问题...我在画星星时遇到问题,它变成了这样:whenn=7andfilled这是我的代码:#include#include#include#includeusingnamespacestd;floatstarCenterX,starCenterY,starRadius;intnumPoints;boolbDrawFill=false;voidDrawStar(floatcx,floatcy,floatradius,intnumPoints);voidDrawStarFilled

c++ - 在现代 OpenGL 中绘制多个对象的最佳方式是什么?

我正在尝试使用现代OpenGL和着色器,而不是我目前一直使用的即时模式。我最近了解了VBO和VAO,我仍在努力了解它们,但我知道VBO采用一组作为顶点的float,然后将其传递给GPU等使用VBO绘制多个对象(它们都相同)但位于不同位置的最佳方法是什么。我是否必须绘制一个,然后修改预先传入的数组,然后再次绘制并修改、绘制和修改等等……每帧屏幕上的所有block?或者有更好的方法吗?我正在努力实现这一目标:http://imgur.com/cBgJ0sK感谢任何帮助-当我可以学习更现代的方式时,我不想学习坏的(已弃用的,旧的)即时模式习惯! 最佳答案

C++ OpenGL 网格渲染

我知道互联网上有很多关于此的资源,但它们似乎对我帮助不大。我想要实现的目标:我正在从数据中烘焙一个网格,该数据将顶点存储在vector中.(Vector3是一个sctruct包含floatx,y,z)它将三角形存储在map>中(map的关键是子网格和vector三角形)vector内的紫外线(Vector2是一个struct包含floatx,y)和vector中的颜色值(颜色值像uv一样应用于顶点)现在我想编写一个代码,可以读取该数据并以最高性能将其绘制到屏幕上我得到了什么:staticvoidrenderMesh(Meshmesh,floatx,floaty,floatz){if(m

C++/OpenGL - 开始一个新项目

我正在开始一个使用C++和OpenGL制作简单游戏并自学OpenGL的新项目。我不想使用GLUT,而宁愿使用SDL来制作window等。但是,我在使用Makefile时遇到了很多奇怪的麻烦。目前,当我键入make时,当我在我的G++命令中包含$(LFLAGS)$(LDFLAGS)时,我会收到此响应:g++-5tetris.o-otetris-std=c++14Undefinedsymbolsforarchitecturex86_64:"_SDL_CreateWindow",referencedfrom:_mainintetris.o"_SDL_GL_CreateContext",ref

maven无法解决org.junit.test

我正在尝试通过命令行中的Groovy编译和运行单元测试。项目中的包装结构不遵循命名约定-这是我目前无法更改的。这些课程被组织为:src/abc/def/SomeClass.groovysrc/abc/tests/def/TestSomeClass.groovy当我跑步时mvntest,消息是:无法解析类org.junit.test和无法解析类org.junit.assert在课堂里src/abc/tests/def/TestSomeClass.groovy.我的pom是:4.0.0org.codehaus.mojomy-project1.0org.codehaus.gmavenplusgmav

c++ - 控制台菜单更新 OpenGL 窗口

我正在制作一个应用程序来进行一些自定义图像处理。该程序将由控制台中的一个简单菜单驱动。用户将输入图像的文件名,该图像将使用openGL在窗口中显示。当用户选择要对图像进行某些处理时,处理完成,openGL窗口应该重新绘制图像。我的问题是我的图像从来没有绘制到窗口,而是窗口始终是黑色的。我认为这可能与我在程序中组织线程的方式有关。主执行线程处理菜单输入/输出和图像处理并调用Display方法,而第二个线程运行openGL主循环。这是我的主要代码:#include#include#include"ImageProcessor.h"#include"BitmapImage.h"usingna

c++ - iPhone OpenGL ES 不正确的 alpha 混合

我在iPhone上使用openGLES时遇到错误的alpha混合结果问题。这是我创建纹理对象的代码:glGenTextures(1,&tex_name);glBindTexture(GL_TEXTURE_2D,tex_name);glTextImage2D(GL_TEXTURE_2D,0,GL_RGBA,tex_width,tex_height,GL_RGBA,GL_UNSIGNED_BYTE,tex_data);'tex_data'是从用zlib打包的原始RGBA8888数据加载的。它按应有的方式加载,我已经用调试器检查过了。这是我在渲染前设置纹理的代码:glEnable(GL_BL

c++ - Boost::Test——Main() 的生成?

我对设置boost测试库有点困惑。这是我的代码:#include"stdafx.h"#defineBOOST_TEST_DYN_LINK#defineBOOST_TEST_MODULEpevUnitTest#includeBOOST_AUTO_TEST_CASE(TesterTest){BOOST_CHECK(true);}我的编译器生成非常有用的错误消息:1>MSVCRTD.lib(wcrtexe.obj):errorLNK2019:unresolvedexternalsymbol_wmainreferencedinfunction___tmainCRTStartup1>C:\Use

c++ - 如何让相机跟随 opengl 中的 3d 对象?

我是第一次使用opengl进行赛车,我面临的第一个问题是如何让相机以恒定的距离跟随汽车。这是键盘功能的代码。V是速度汽车。voidOnSpecial(intkey,intx,inty){floatstep=5;switch(key){caseGLUT_KEY_LEFTa:carAngle=step;V.z=carAngle;camera.Strafe(-step/2);break;caseGLUT_KEY_RIGHT:carAngle=-step;V.z=carAngle;camera.Strafe(step/2);break;caseGLUT_KEY_UP:V.x+=(-step);

c++ - 在 opengl 阴影映射中将顶点深度信息存储在纹理中

我目前正在将阴影贴图(准确地说是级联阴影贴图)编程到我的C++opengl引擎中。因此,我想要一个包含我的光源和我的阴影贴图中每个像素之间的距离的纹理。我应该使用哪种纹理类型?我看到有一个GL_DEPTH_COMPONENT纹理内部格式,但是它将我想要给纹理的数据缩放到[0,1]。我是否应该在创建阴影贴图时反转一次长度,然后在最终渲染期间反转第二次以取回实际长度?好像没什么用!有没有一种方法可以使用纹理来存储长度而不用将它们反转2次?(一次在创建纹理时,一次在使用过程中)。 最佳答案 我不确定你说的反转是什么意思(我敢肯定你不是说要