问题标签 [texturing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
689 浏览

java - FBO 纹理完全显示为黑色

我正在尝试遵循ThinMatrix 的水教程。为此,我需要创建一个 FBO 并将其渲染为纹理。

但是,正如您所见,水完全是黑色的: 在此处输入图像描述

我正在使用直接从教程中提供的源代码(从链接复制)。

基本上,我创建了一个 FrameBuffer:

然后我创建一个纹理附件:

我还创建了一个深度缓冲区附件:

然后,我将对象渲染到帧缓冲区对象:

我像这样绑定帧缓冲区:

我打印 glGetError() 时的“错误”是正常的0。“帧缓冲区设置”消息会打印出来。

之后,我希望调用fbos.getReflectionTexture()会返回一个纹理 ID……确实如此!它成功返回纹理 ID 12。但是,当我绑定它时,纹理是完全黑色的。

我无法弄清楚出了什么问题,以及为什么纹理没有显示任何渲染给它的东西。

我知道的事情没有错:

我绝对正确地绘制和纹理水本身。我可以使用任何预加载的纹理和纹理水就好了: 在此处输入图像描述

此外,渲染到 FBO 的对象具有正确的平移、旋转等。如果我不绑定任何帧缓冲区,则用于 FBO 的树叶会正确地绘制(并看到)在我的屏幕上。

0 投票
1 回答
489 浏览

live - 使用 Vuforia 进行实时纹理处理

我想知道是否有可能使用 vuforia 在 3D 模型中进行实时纹理处理。

如果没有现场直播,我们至少可以从绘图簿中选择颜色并将相同的颜色应用于我们的增强 3D 模型吗?

就像在下面的视频中所做的那样

https://www.youtube.com/watch?v=tmfXgvT9h3s

0 投票
0 回答
176 浏览

opengl - 使用 glMultiDrawArrays 渲染对象并添加纹理

目前我正在构建一个简单的 3D 渲染器。渲染器从 Wavefront OBJ 文件中读取对象信息。我从文件中得到的是顶点坐标、法线坐标和 UV 坐标。OBJ 文件附带一个 MTL 文件,其中包含有关材料的信息。我现在正在做的是使用 glGenBuffers 生成缓冲区:

  • 顶点缓冲区
  • 正常缓冲区
  • UV 坐标缓冲区
  • 漫反射颜色缓冲器
  • 高光颜色缓冲区
  • 环境色彩缓冲器
  • 透明缓冲区

这些缓冲区或数组是有序的,因此每个顶点都有其正确的法线、uv 坐标等。

据我了解,这就是 glMultiDrawArrays 希望排列数据的方式,并且可以正常工作。所以我的场景被渲染并且对象具有正确的材质颜色但还没有纹理。我应该补充一点,我正在使用我在教程中找到的顶点着色器和片段着色器,它们可以正常工作。碎片着色器进行颜色计算。

现在我想为我的对象添加纹理(顶点已经具有正确的 uv 坐标,如上所述)。我的第一个想法是首先渲染所有没有纹理的对象,以从 glMultiDrawArrays 获得速度优势,然后再渲染每个具有纹理的对象。

但后来我看到片段着色器正在使用 UV 坐标对颜色的纹理进行采样。我的想法是自己以某种方式使用 UV 坐标对纹理进行采样,并将颜色写入我的颜色缓冲区(使用具有 UV 坐标的顶点的纹理颜色覆盖顶点颜色),通过这样做,我可以渲染整个场景一口气。

我对这个话题很陌生,所以我的问题是:

我可以以某种方式使用片段着色器外部的纹理采样器来获取颜色信息吗?

我的第二个问题是,如果这首先是完全错误的方法,并且有一种我还不知道的标准方法吗?

如果有人能指出我正确的方向,我将不胜感激。谢谢

0 投票
0 回答
72 浏览

c++ - 纹理只是呈现为一个实心正方形,颜色类似于我的纹理图像的主要像素

在尝试渲染我的 opengl 纹理时,我只得到一个实心四边形,它是我的纹理的基色。

这是我用于加载纹理和渲染/我的着色器的代码

顶点着色器.vert

片段着色器.frag

纹理加载

纹理绘图

垂直/指数/颜色阵列

//在不同的类

着色器程序的一部分

0 投票
1 回答
212 浏览

c# - Unity:在 Hexgrid 中纹理化海岸线

我是一名初学者程序员和 Unity 新手。我目前正在使用 Unity5 练习 hexgrid 构建。我当前的六边形网格由平面六边形组成,它们具有草原或海洋 2D 纹理。(当前的六角网格

我想在我的六角网格中有一条沙质海岸线(在以海洋瓷砖作为相邻瓷砖的草原瓷砖上)。

我的问题是:最好、最有效的方法是什么?

我想为每个可能的海岸瓷砖制作一个纹理,但这将是大约 64 种不同的纹理,具体取决于草原相邻的海洋瓷砖数量以及从哪个方向。

我还需要沙漠和草原六角以及深海和浅海六角之间的“模糊”纹理线,我不知道该怎么做......

任何建议表示赞赏。谢谢!

0 投票
0 回答
185 浏览

c++ - OpenGL 纹理问题:纹理与原始颜色混合

所以我对OpenGL和纹理相当陌生。我有一个平面,如原始(2 个三角形),我试图将图像映射到。我已经做到了这两种方式。第一种方法是我编写了一个使用 sampler2d 统一的 Fragment 着色器,并调用 texture2d 将图像的像素映射到图元,这工作正常,看起来像这样:

正确

我采取的第二种方法我使用了 glEnable 并且没有使用任何着色器,图像看起来像这样:



了很多代码是一个工作项目,所以我不能发布很多,但我基本上是这样渲染的:

我知道绿色来自我的 glColor 电话,但我想我只是想了解这里的幕后情况?我想如果我在渲染之前调用 glColor ,则不会显示任何图像,因为它会将所有东西都染成绿色。从着色器的角度来看,这完全有道理,但我不明白这种方法。我如何使用没有着色器的旧方法让它工作,就像我对着色器所做的那样?

0 投票
1 回答
1091 浏览

webgl - 球面映射伪影

我对 webgl 中的球体贴图纹理有一些问题。

我的质地:

在此处输入图像描述

现在我对球体进行纹理化。一切正常,如果球体在镜头前: 在此处输入图像描述

球体是一个单位球体 (r = 1),由经度和纬度定义。

但是我得到一些人工制品,如果我在 x 方向 -2.5 上平移球体(不旋转相机): 在此处输入图像描述

此图像没有 mipmapping。下图是 mipmapping:

在此处输入图像描述

顶点和法线似乎没问题。

顶点着色器:

和片段着色器:

有谁知道,为什么我得到这些文物?我正在使用 Windows 和 Firefox。

0 投票
1 回答
144 浏览

opengl - 使用 SOIL 加载 jpeg 图像时 OpenGL 处理缓慢

我正在开发一个项目,用 jpeg 图像和一些键盘导航键为球体向右或向左旋转球体。问题是我尝试使用 SOIL 加载图像并成功加载,但问题是球体旋转的处理速度很慢......任何帮助!

这就是我在 main 方法中调用一次的 seoarate 方法中加载 jpeg 图像的方式

这就是我创建球体并将纹理应用到它的方式

0 投票
0 回答
275 浏览

c++ - 在前景中看到的 OpenGL 背景对象纹理

我正在努力在 OpenGL 中正确显示我的对象。问题是背景纹理显示在前景纹理之上。(如叶子图片所示)

问题的可视化 我在 os x el capitan 上使用 OpenGL 4.1 Core。

我的棕榈树着色器:

我将 VAO 放置在资产管理器中,因此多个对象可以使用相同的 VAO 和着色器。绘图将称为:

在程序开始时,我调用:

是否可以在单个 OpenGL 上下文中反复使用相同的 VAO 和程序组合?

如果是这种情况。有没有其他人有可能解决这个问题的建议?

0 投票
1 回答
113 浏览

java - 带有 Android 上下文的 OpenGL 纹理

我正在尝试创建一个可以纹理多个立方体的程序。我在着色方面取得了成功,但在纹理方面遇到了一些困难,主要是关于我的 Android Activity。

我不知道如何设置 2 个内容(或者是否可能)或如何将 Renderer 设置为我原来 setContentView(R.layout.activity_my_glsurface_view)的 .

我需要这个来调用mCube.loadTexture(this.context, R.drawable.app_icon_your_company)GLRenderer将我的纹理应用到我的立方体。我将在下面附上我的代码,如果在 Android 中有另一种方法,请告诉我,但我遇到的所有教程都是这样做的,我面临同样的问题。

以下是我的主要活动:

我也会包括我loadTextureCube.java班级: