草庐IT

纹理表

全部标签

c++ - 使用 GLFW3 在 OpenGL 上下文之间共享纹理不起作用

下面的程序应该:创建一个不可见的GLFWwindow*masterWindow从文件加载纹理,而事件的OpenGL上下文是与masterWindow相关联的上下文创建一个GLFWwindow*childWindow,在此窗口的OpenGL上下文和masterWindow的上下文之间激活共享在childWindow中显示带有纹理的全窗口四边形但是,这不起作用,即我在childWindow中显示随机的图形内存片段,而不是纹理。如果我在加载它之前使childWindow的上下文成为当前上下文,那么显示纹理确实有效,这就是为什么我认为问题既不在我的着色器也不在我的纹理加载例程(我从这里获取,h

c++ - 从 sdl 调色板表面创建 OpenGL 纹理 (SDL_PIXELFORMAT_INDEX8)

我创建了一个bmp并使用SDL_LoadBMP加载它检查生成的SDL_Surface时,我可以看到它的格式为SDL_PIXELFORMAT_INDEX8。我想使用SDL表面使用glTexImage2D生成纹理.通常我只能检查表面接近于此的东西:SDL_Surface*surface=SDL_LoadBMP(filename.c_str());GLenummode=0;Uint8bpp=surface->format->BytesPerPixel;Uint32rm=surface->format->Rmask;if(bpp==3&&rm==0x000000ff)mode=GL_RGB;i

c++ - 如何将 win32 窗口渲染为 opengl 纹理?

我希望能够在OpenGL纹理中渲染win32控件。为了能够对其进行3d转换。具体来说,我想嵌入InternetExplorer以在3D转换窗口中显示网页和视频。如何以足够快的方式将win32窗口渲染到纹理(我需要保持60fps)? 最佳答案 您可以通过多种方式来解决这个问题。在所有情况下,您都需要从目标窗口(GetDC、GetDCEx)获取设备上下文(DC)。然后,您可以直接读取像素(GetPixel);或将内容blit到您自己的DC(BitBlt),然后访问它(例如GetDIBits)。既然您想“嵌入”InternetExplor

c++ - 如何在 OpenGL 中将像素绘制为多边形的纹理?

在C++OpenGL中,我想手动将每个像素(作为我假设的纹理)绘制到一个简单的正方形基元上,或者实际上是2个多边形形成一个正方形。我不知道从哪里开始,也不知道要寻找什么短语。我是在寻找纹理贴图还是创建纹理?大多数示例都是从文件加载,但我不想这样做。我已经尝试阅读我的OpenGL编程指南书,但它只是一个迷宫,因为我对OpenGL还很陌生。请帮忙。 最佳答案 仔细看看glTexImage2D。这是在OpenGL中为2D纹理加载图像的调用。glTexImage2D实际上采用原始指针指向图像中的像素数据。你可以自己分配内存,直接设置图像数据

c++ - OpenGL:禁用纹理颜色?

是否可以禁用纹理颜色,只使用白色作为颜色?它仍然会读取纹理,所以我不能使用glDisable(GL_TEXTURE_2D)因为我也想渲染alphachannel。我现在能想到的就是制作新的纹理,其中所有颜色数据都是白色的,保持原样的alpha。我需要在没有着色器的情况下执行此操作,这是否可行?编辑:澄清:我想使用两种纹理:白色和正常颜色。编辑:显然这是不可能的 最佳答案 我仍然不能完全确定我是否正确理解了您想要的内容,但我会试一试。我的想法是,当您调用glTexImage2D时,您指定了您正在加载的纹理元素的格式,并且您指定了您要加

c++ - OpenGL纹理

很抱歉请求帮助,但我很沮丧。我不知道为什么,但我似乎从来没有能够在OpenGL中使用纹理。我真的很感激一个最小的例子,只要它只使用/gl.h/glu.h和标准C++库。任何其他见解将不胜感激。很抱歉只是要求您为我编写一个完整的程序,但我真的可以使用它,因为我看到的每个互联网示例都使用过剩。由于某种原因我无法编译它,这很烦人。谢谢。 最佳答案 您需要一些库或接口(interface)来创建OpenGL上下文(以及一个显示它的窗口)。GLUT已经过时,但仍然很受欢迎;现在好的选择是GLFW或SDL。我推荐GLFW。(顺便说一句,为什么你

c++ - 在 OpenGL 中。如何将纹理的一部分复制到另一个纹理

我正在尝试创建一个空白(没有alpha的白色)纹理,我可以在其中加载其他纹理并写入其中的一部分。我尝试只获取一部分纹理,并使用glTexSubImage2D将其放置在那里似乎无法正常工作。任何人都知道如何做到这一点?我做错了什么?intsourceTextWidth;intsourceTextHeight;intsourceFormat;intformatOffset=0;//bindthetextureglBindTexture(GL_TEXTURE_2D,textureID);//getitsparamsglGetTexLevelParameteriv(GL_TEXTURE_2D,

c++ - 使用 TextureArray 优于一组纹理的性能优势?

假设我有nbFramesAnimation*3float4Texture2D我想传递给我的GPU,并且:我不需要在纹理之间进行插值;所有纹理的大小都相同;我不知道它是否相关,但我没有任何mip-maps;我将这些纹理用作G缓冲区,并在其上应用一些后期效果。因此,我可能必须使用索引的非文字表达式来访问它们。此外,因为我将它们用作G-Buffer,所以我必须经常加载它们。他们给我位置和法线信息,需要精确,以及UV+IndexObject(所以实际上只使用了4个float中的3个)。至于现在,在每一帧渲染中,我使用SetResource分别加载三个纹理。它非常慢并且远非实时。我想知道是否:拥

c++ - OpenGL GLSL 纹理透明度

我想使用GLSL使我的32位位图纹理透明。我的片段着色器看起来像这样:#version120uniformsampler2DmyTexture;varyingvec2TexCoord;voidmain(void){if(texture2D(myTexture,TexCoord).a!=1.0f){discard;}gl_FragColor=texture2D(myTexture,TexCoord);}但这只会使alpha等于0的像素透明,并且我想保持纹理的淡入淡出。例如在这张图片中,第一张图片是纹理,第二张是纹理mask,第三张是想要的结果:纹理和纹理mask在一个32位位图中。有谁知

Blender——将模型及其所有纹理与材质导入unity

前期准备参考视频:7分钟教会你如何将Blender的模型材质导入unity_哔哩哔哩_bilibili实验模型官网下载地址:HoiAnAncientHouseModelfreeVR/AR/low-poly3DmodelCSDN下载链接: 【免费】Blender三维模型-古代房屋模型(HoiAnAncientHouseModel) 对于常见的Blender文件,可以直接导入Unity,但会出现纹理无法显现的问题。比如将该房屋模型(.blend文件),直接导入Unity的效果如下图。此外,该导入方法,也无法选择模型中的特定物体进行单独导入。具体操作1.首先使用Blender打开下载好的模型。2.解