textures相关内容

如何将一组纹理绑定到 WebGL 着色器统一?

我需要处理许多只共享少量纹理的对象.手动定义和加载纹理(如 另一篇文章中所述在 SO) 上感觉不对……更是如此,因为 WebGL 中没有 switch (index) {case:...} 语句. 所以我想传递用于顶点的纹理作为顶点属性,并使用这个数字作为片段着色器中某些“纹理数组"的索引.但是 采样器上的 OpenGL wiki(不是 WebGL 的完美参考,但是我找到的一个)说: ..
发布时间:2021-09-06 19:51:19 其他开发

从 WebGL 纹理读取像素

我有一个 WebGLTexture 对象.如何获取该纹理的像素(类似于 WebGL 的 readPixels,但用于纹理)? 我的一个想法是创建一个画布和一个带有preserveDrawingBuffer=true 的WebGL 上下文,并在这个画布上渲染我的纹理,以便它显示2D 平面,然后使用readPixels.这种做法合理吗?有没有人有这方面的示例代码? 解决方案 您可以尝试将 ..
发布时间:2021-09-06 19:51:16 其他开发

WebGL 中的透明纹理行为

环境:WebGL、Chrome.使用透明 png 作为模型的纹理时,我有以下行为: 图像 A - 树将建筑物隐藏在它后面,我看到了世界框纹理.它也会隐藏自己(后面的分支不可见) 同时 - 图像 B - 工作正常,窗口是透明的,我看到后面是什么 A:B: 两张截图都是在同一场景中同时从不同的相机位置制作的.纹理由相同的算法生成. 我无法理解窗口和分支透明度之间的区别.我的主 ..
发布时间:2021-09-06 19:51:13 其他开发

是否可以在不使用自定义着色器的情况下使用 2 个纹理(一个在另一个之上)作为材质?

我正在学习three.js,我已经做了一些关于它和基本着色器的例子(一个是 Codrop 的“飞行员"教程),但现在我很难尝试一次创建一个带有 2 个纹理的简单立方体. 我想为每个正方形的脸同时使用 2 个透明的 .png 纹理.这可能不会重复使用自定义着色器吗?我已经看到了这个答案,但是我没有成功让它正常工作,因为它很复杂并且对着色器来说相当陌生. 就上下文而言,我在这个示例上的代码 ..
发布时间:2021-07-23 20:04:26 前端开发

一个纹理的qt多个QGLShaderProgram

我使用了两个 QGLShaderProgram 来处理纹理. ShaderProgram1->bind();//QGLShader程序ShaderProgram2->bind();glBegin(GL_TRIANGLE_STRIP);...glEnd();ShaderProgram1->release();ShaderProgram2->release(); 纹理应先使用 Shaderprog ..
发布时间:2021-07-23 20:04:22 其他开发

从着色器中的 DataTextures 读取不正确

当我的 POT DataTextures 的纹素尺寸为 1:1(宽度:高度)时,我有一个程序运行良好,但是当它们的纹素尺寸为 2:1 或 1:2 时,纹素似乎不正确阅读并应用.我正在使用连续索引 (1,2,3,4,5...) 使用以下两个函数访问纹素. 我想知道我访问 texel 数据的方式是否有问题,或者我对整数索引的 Float32Array 的使用是否需要切换到 Uint8Array ..
发布时间:2021-07-23 20:04:08 其他开发

webgl:与其他程序/着色器共享纹理

我有两个着色器,它们使用不同的顶点数组和不同的统一值,但它们使用相同的纹理(精灵表/图集).它们是否可以共享相同的纹理(不会导致纹理两次发送到 gpu)? 背景:我的游戏在我的笔记本电脑上有一些严重的性能问题,它们似乎与 GPU 相关.我当前的实现使用了两个画布,一个用于我的背景,一个用于我的前景.然后他们为最终图像组成(绘制到第三个画布上).我的背景使用了 4 个纹理,而我的前景有一个大的 ..
发布时间:2021-07-23 20:02:43 其他开发

在 THREE.js 中检索顶点数据

我正在使用自定义着色器创建网格.在顶点着色器中,我正在修改几何顶点的原始位置.然后我需要从着色器外部访问这个新的顶点位置,我该如何实现? 解决方案 代替变换反馈(WebGL 1.0 不支持),您将不得不使用直通片段着色器和浮点纹理(这需要加载扩展 OES_texture_float).这是在 WebGL 中在 GPU 上生成顶点缓冲区的唯一方法.WebGL 也不支持像素缓冲区对象,因此读取 ..
发布时间:2021-07-23 20:02:01 其他开发

在 SceneKit 中的平面上重复纹理

我有一个 32x32 .png 图像,我想在 SCNPlane 上重复该图像.我得到的代码(见下文)导致图像被拉伸以适应平面的大小,而不是重复. 代码: let planeGeo = SCNPlane(width: 15, height: 15)让 imageMaterial = SCNMaterial()imageMaterial.diffuse.contents = UIImage(n ..
发布时间:2021-07-07 19:22:03 移动开发

将缓冲区渲染到 XNA 中的 texture2D 对象

在 XNA 中,有没有办法在渲染到屏幕之前渲染到纹理对象之后渲染 spriteBatch 的内容? 解决方案 因为 Hexxagonal 已经回答了,是的,你可以.但是,如果您使用半透明的精灵,您可能会遇到麻烦.原因是,两个重叠的精灵最终不会在您的屏幕外渲染目标中获得正确的 alpha 值. 要使事情正确,您必须制作自己的 SpriteBatch 并开始使用预乘 alpha. ..
发布时间:2021-07-07 19:20:01 其他开发

三.js 在不同场景/div 中使用相机纹理

目前,我正在将相机渲染到纹理并将纹理放在平面网格上.这是有效的,在场景中记录了纹理. 将相同的网格放入在 div 中运行的不同场景时,网格显示出来,没有纹理.同样,当我将纹理放在网格上时,网格是在 div 场景中创建的. 网格似乎有纹理,因为初始化时它是黑色而不是红色.当离开纹理时,它确实显示为红色. 当我将网格放入主场景和 div 场景的两个场景中时,网格仅显示在主场景中,相机 ..
发布时间:2021-07-07 19:17:59 其他开发

生成 OpenGL ES 纹理后释放 UIImage 时程序崩溃

现在,我遵循了本教程: http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-part-6_25.html 如果我试图释放 UIImage,它就不起作用:我会得到一个“EXC_BAD_ACCESS".现在,我将 UIImage 设为实例变量并保留它们.我不会让它自动释放.但问题是有时我想删除我的纹理 ..
发布时间:2021-06-12 20:14:20 其他开发

OpenGL 对多个纹理感到困惑

我正在使用 OpenGL 3.3 开发 3d 程序.到目前为止,我设法渲染了许多立方体和一些球体.我需要使用通用纹理对所有立方体的所有面进行纹理处理,只有一个面应该具有不同的纹理.我尝试使用单个纹理,一切正常,但是当我尝试添加另一个纹理时,程序似乎表现得很随机. 我的问题: 是否有合适的方法将多个纹理传递给着色器? 我应该如何跟踪面部以渲染正确的纹理? 谷歌搜索我发现两次定义顶点可能很有用 ..
发布时间:2021-06-12 20:11:54 C/C++开发

使用 Alpha 测试的 Opengl 选择

从我在互联网上看到的情况来看,我的方法无法真正解决这个问题. 我目前正在编写一个程序,该程序使用选择缓冲区传递场景中的所有对象.但是,其中一个对象是一个纹理,其中很大一部分的 alpha 为 0.渲染时效果很好,不显示 alpha 值,但在选择模式下,跳过 alpha 测试,并将鼠标悬停在透明区域选择对象而不是它后面的任何东西. 有没有办法在选择模式下启用 alpha 测试? 解 ..
发布时间:2021-06-12 20:11:10 其他开发

将新纹理加载到已定义的纹理名称中

我有一个 OpenGl 程序,我在其中使用纹理显示图像.我希望能够加载要显示的新图像. 在我的 Init 函数中,我调用: Gl.glGenTextures(1, mTextures); 由于一次只显示一张图片,我对每张图片使用相同的纹理名称. 每次加载新图像时,我都会调用以下内容: Gl.glBindTexture(Gl.GL_TEXTURE_2D, mTexture[0]); ..
发布时间:2021-06-12 20:11:07 其他开发

无法使用 glGetTexImage 读取深度贴图纹理

我已经成功创建了一个帧缓冲对象并创建了一个包含场景深度图的纹理.我知道我这样做是正确的,因为我将纹理应用于矩形,它看起来很好: 现在我想从我在主程序中创建的纹理而不是在着色器中读取值.查看它我发现了两个函数,即:glGetTexImage() 和 glReadPixels().由于我对 openGL 很陌生,因此有关这些的文档带来的问题多于答案.在查看了这里其他人的代码后,这是我找到解决方案 ..
发布时间:2021-06-12 20:10:59 其他开发

opengl 纹理过滤低质量

在我的 Windows 机器上,我看不到下一个设置之间的区别: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 和 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 而且两者的质量都很差.我是否缺少管道中的某些设置? ..
发布时间:2021-06-12 20:10:47 其他开发

OpenGl 纹理太暗

基本上我有一个使用纹理绘制矩形的渲染函数: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);glShadeModel(GL_SMOOTH);glEnable(GL_TEXTURE_2D) ..
发布时间:2021-06-12 20:09:45 C/C++开发

OpenGL:关于使用多个纹理或纹理单元的一些说明

我需要在我的着色器中使用两个纹理,一个在顶点着色器中,另一个在片段着色器中.在这两种情况下,它们都在 uniform sampler2D tex1; 或 uniform sampler2D tex2; 之类的着色器中被引用,但是我不太确定如何正确使用相关的 GL 调用. 初始化 首先,我如何创建两个纹理?我是否需要像这样使用多个纹理单元 GLuint texIdx[2] = {0, ..
发布时间:2021-06-12 20:07:57 C/C++开发