草庐IT

使用 Rajawali3D 来自非本地源的 Android OpenGL 纹理?

我正在使用OpenGL库Rajawali3D来显示我的模型。我想知道的是如何根据登录用户从我的服务器加载纹理?我已经在互联网上搜索了几个月,试图解决这个问题,但没有成功。我发现这个网站解释了如何从非本地源加载纹理,但是当我尝试它时,它不适用于Rajawali。任何建议或例子将不胜感激。这是我尝试使用的网站:texturefromweb 最佳答案 我对Rajawali不熟悉,但是我刚刚查看过它,加载远程纹理并将其应用到模型似乎相当容易。我假设您已经加载了3D模型并且可以很好地显示它。如果是这样,您应该执行以下基本步骤(通常适用于所有3

android - OpenGL ES 可以渲染非基本 2 维的纹理吗?

这只是在我深入研究将当前渲染系统转换为openGL之前的一个快速问题。我听说纹理需要以2为基数才能存储以供渲染。这是真的?我的应用程序内存非常紧张,但大多数位图不是2的幂。存储非base2纹理会消耗更多内存吗? 最佳答案 的确,根据OpenGLES版本,OpenGLES1.0/1.1有两个限制。OpenGLES2.0没有限制,但它限制了两个纹理的非幂的环绕模式。创建更大的纹理以匹配POT尺寸会浪费纹理内存。 关于android-OpenGLES可以渲染非基本2维的纹理吗?,我们在Stac

android - 如何找到不同手机的最大纹理尺寸?

我正在尝试找出原始摩托罗拉Droid的最大纹理尺寸。我相信G1的最大纹理大小为512,但如果我能找到更正式的方法以便构建合适的图block系统,那就太好了。 最佳答案 您可以使用glGetIntegerv请求最大纹理大小:int[]maxTextureSize=newint[1];gl.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE,maxTextureSize,0);Log.i("glinfo","Maxtexturesize="+maxTextureSize[0]);

c++ - 无法从压缩纹理数据创建图像 (S3TC)

我一直在尝试在Vulkan中加载使用S3TC(BC/DXT)压缩的压缩图像,但到目前为止我运气不佳。以下是Vulkan规范对压缩图像的描述:https://www.khronos.org/registry/dataformat/specs/1.1/dataformat.1.1.html#S3TC:CompressedtextureimagesstoredusingtheS3TCcompressedimageformatsarerepresentedasacollectionof4×4texelblocks,whereeachblockcontains64or128bitsoftexel

c++ - 在 OpenGL 中投影纹理

通过将近裁剪平面设置为1而不是0来修复(不确定为什么一开始就是这样)。请参阅框架代码的问题,以及Adrian的回答,了解其工作原理和原因。我有几个不同的相机位置,我的场景由一个四边形组成。四边形是这样的,它在第一帧中准确地投影到视口(viewport)/窗口上。我想将这个相机位置的纹理转换到四边形上。纹理也完全覆盖了视口(viewport)。我做的第一件事是//GL_QUADS...glTexCoord2f(/*onecornerofs,tspace*/);glVertex3f(/*appropriatevertex*/);;最后得到了类似的东西(图片不是我的)然后我意识到是的,当然,

c++ - DirectComposition 渲染到纹理?

我希望将直接合成渲染到纹理。这可能吗?这样做的原因是我希望能够将gpu加速的无窗口透明flash播放器activex控件渲染到纹理。通常不可能实现的事情,但我希望通过DirectComposition实现。 最佳答案 这不太可能,引用MSDN(强调我的)DirectCompositiondoesnotofferanyrasterizationservices.Anapplicationmustusesomeothersoftware-basedorhardware-acceleratedrasterizationlibrarysuc

c++ - SDLSurface 的 OpenGL 纹理太暗

我遇到的问题与这个OpenGlgoestoodark完全相同但答案对我不起作用。由于表面转换为纹理,我正在尝试显示图像,但结果太暗了:原文:在openGL之后左边是原图,右边是OpenGlimg。这是我的代码:voidTexturedRect::draw(intscroll){glMatrixMode(GL_MODELVIEW);glLoadIdentity();glBindTexture(GL_TEXTURE_2D,_texture);glEnable(GL_TEXTURE_2D);glBegin(GL_QUADS);//Beginingthecube'sdrawingintx=th

c++ - SDL:在另一个纹理之上渲染纹理

我遇到以下问题:我需要在另一个纹理之上渲染一个纹理,然后渲染那个主纹理。例如,我有蓝色矩形纹理,我想在这个蓝色矩形上绘制红色矩形。但是我希望他们只在这个矩形上限制渲染。就像下面的图片:我读到了一些关于它们之间的纹理blit或类似的东西,但我不确定这是否可行。我的代码是这样的:SDL_RenderCopy(ren,bluetexture,NULL,dBLUErect);SDL_RenderCopy(ren,redtexture,NULL,dREDrect);SDL_RenderPresent(ren);有人知道如何在SDL2.0中执行此操作吗?顺便说一下,这就是我使用的。

c++ - 简单的 OpenGL 纹理贴图不起作用?

我正试图找出OpenGL中的纹理映射,但我无法找到一个简单的示例来工作。正在绘制多边形,虽然它没有纹理,只是纯色。位图也被正确加载到sprite1[]中,因为到目前为止我一直在成功使用glDrawPixels。我使用glGenTextures获取我的tex名称,但我注意到它并没有改变texName1;这个GLuint是我初始化它的任何东西,即使在调用glGenTextures之后......我启用了GL_TEXTURE_2D。代码如下:GLuinttexName1=0;glGenTextures(1,&texName1);glBindTexture(GL_TEXTURE_2D,texN

c++ - 通过着色器的 OpenGL 投影纹理映射

我正在尝试通过在OpenGL3+中使用着色器来实现一种简单的投影纹理映射方法。虽然网络上有一些示例,但我无法使用着色器创建工作示例。我实际上计划使用两个着色器,一个用于绘制普通场景,另一个用于投影纹理贴图。我有一个绘制场景的函数voidProjTextureMappingScene::renderScene(GLFWwindow*window)我正在使用glUseProgram()在着色器之间切换。正常绘图工作正常。但是,我不清楚我应该如何在已经纹理化的立方体之上渲染投影纹理。我是否必须以某种方式使用模板缓冲区或帧缓冲区对象(场景的其余部分应该不受影响)?我也不认为我的投影纹理映射着色