草庐IT

纹理表

全部标签

c++ - 映射动态纹理导致 "Already Mapped Error"

我刚开始使用Direct3D11,我正在尝试创建一个动态纹理,我计划每秒更新几次新数据。我的问题是,每次我用新数据更新纹理时,我都会从D3D调试器收到此错误:D3D11:错误:ID3D11DeviceContext::Map:此资源已映射![RESOURCE_MANIPULATION错误#2097213:RESOURCE_MAP_ALREADYMAPPED]在运行应用程序一段时间后,最终会变成来自Map调用的E_OUTOFMEMORY错误。我正在这样创建我的纹理:D3D11_TEXTURE2D_DESCtd;td.ArraySize=1;td.BindFlags=D3D11_BIND_

c++ - DirectX Clip 空间纹理坐标

好的,首先我正在使用:DirectX10C++好吧,这对我来说有点奇怪,我通常不会问这个问题,但我被环境所迫。我有两个三角形(不是四边形,因为我不会进入!)全屏,通过它们没有转换的事实与屏幕对齐。在DirectX顶点声明中,我传递了一个3分量float(Posx,y,z)和2个分量float(Texcoordx,y)。Texcoordz是为texture2d数组保留的,我目前在像素着色器中默认为0。我写这个是为了完成简单的任务:floatfStartX=-1.0f;floatfEndX=1.0f;floatfStartY=1.0f;floatfEndY=-1.0f;floatfStar

c++ - 我是否应该确保在退出程序之前销毁 SDL 2.0 对象(渲染器、窗口、纹理等)?

ThisSDL2.0教程使用从main返回的代码,而不首先破坏任何资源指针:intmain(intargc,char**argv){if(SDL_Init(SDL_INIT_EVERYTHING)==-1){std::cout我应该在退出前将我的终止函数告诉DestroyRenderer、DestroyWindow、DestroyTexture等吗? 最佳答案 与“我应该在退出程序之前释放我分配的内存”的问题相同。是的,如果SDL/X11/GL/etc中没有错误。完成代码-无论如何都将被释放。但我看不出您不应该自己这样做的原因。当然

c++ - OpenGL 纹理贴图

我是游戏编程和图形编程的新手。然而,我渴望学习,所以我开始用OpenGL构建游戏引擎。我已经实现了所有基本图形功能,现在我想为我的三角形网格添加纹理支持。我能找到的关于纹理贴图的唯一教程是针对单个多边形的——如何定义环绕整个网格的纹理?我正在使用lib3ds(http://code.google.com/p/lib3ds/)从.3ds文件加载网格。.3ds文件是否携带一些纹理坐标数据或其他内容? 最佳答案 这是一个显示读取纹理坐标示例的页面:http://newsgroups.derkeiler.com/Archive/Comp/c

c++ - Opengl视频纹理

我正在使用VisualStudio10在Windows上使用C++开发opengl应用程序。目前我在立方体上使用静态纹理,但我想集成视频纹理。你知道我可以使用哪个库来打开和解密视频吗? 最佳答案 看看ffmpeg/libavformat/libavcodec或gstreamer。它们使用起来非常简单。您应该使用glTexSubImage2D来更新纹理日期(使用它不会进行完整的纹理重新初始化)。 关于c++-Opengl视频纹理,我们在StackOverflow上找到一个类似的问题:

c++ - 使用顶点缓冲对象的 OpenGL 快速纹理绘制。这是这样做的方法吗?

我正在使用OpenGL制作2D游戏。我想通过使用VBO来加速我的纹理绘制。目前我使用的是即时模式。当我旋转和缩放纹理时,我正在生成自己的坐标。我还可以使用多边形基元来绘制纹理的四角圆角。我当时在想,制作一个VBO的速度是否最快,该VBO在纹理的侧面没有包含偏移量,因此我可以使用glTranslate、glScale和glRotate来移动我的纹理的绘图位置。然后我可以使用相同的VBO,每次都无需更改来绘制纹理。我只能在需要为圆角添加坐标时更改VBO。这是最好的方法吗?做的时候要注意什么?在现代显卡中使用GL_TRIANGLES而不是GL_QUADS真的最快吗?感谢您的任何回答。

c++ - OpenGL 纹理不显示

我正在尝试使用opengl在Qt中显示纹理,但它只是在我运行时不显示纹理。我做了一些研究,发现我需要将纹理的高度和宽度设置为2的幂。我的纹理现在是(1024x1024)。我还添加了很多可以解决我的问题的glTexParameterf,但仍然没有成功。voidWorldView::paintGL(){this->dayOfYear=(this->dayOfYear+1);this->hourOfDay=(this->hourOfDay+1)%24;glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glLoadIdentity();//sto

c++ - 如何减少对大量纹理的绘图调用次数?

我正在尝试为基于2D图block的游戏开发map,我使用的方法是将map图像保存在大纹理(图block集)中,并通过更新位置仅在屏幕上绘制所需的图block通过顶点着色器,但是在10x10的map上涉及100次glDrawArrays调用,通过任务管理器查看,这消耗了5%的CPU使用率和4~5%的GPU,想象一下如果它是一个完整的游戏有几十次调用,有一个优化此方法的方法,例如准备整个场景并仅进行1次绘制调用、一次绘制所有内容或其他一些方法?voidGameMap::draw(){m_shader->use();m_texture->bind();glBindVertexArray(m_

iphone - 我应该使用哪种 OpenGL ES 纹理格式以在 iPad 上获得更好的动态范围?

我正在开发一些使用纹理贴图来存储几何图形的软件。使用GL_RGB作为内部格式会产生很多锯齿,我假设是因为默认情况下纹理被压缩到GL_RGB4。在台式机上我可以使用GL_RGB16或GL_RGB32F(等)来设置内部格式,但在OpenGLES2.0下似乎没有任何这些格式。在IOS下是否有可供我使用的替代方案或扩展? 最佳答案 根据Apple(和我自己的经验)GL_RGB和GL_UNSIGNED_BYTE使用8:8:8存储。要降低颜色精度,您需要指定一种GL_UNSIGNED_SHORT_5_6_5类型或将多个channel打包成一个短

IOS memcpy 纹理到双数组

您好,我正在使用以下函数将sampleBuffer绑定(bind)到opengl纹理,效果很好。void*imageData;-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection{UIImage*image=[selfgenerateUIImageFromSampleBuffer:sampleBuffer];if(imageData==N