问题标签 [bump-mapping]

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 投票
0 回答
638 浏览

sprite-kit - SKSpriteNode 照明不适用于 SKTextureAtlas 中的纹理

我遇到了 SpriteKit 的问题(在 OS X 10.11 beta 上尝试了 Xcode 7 beta 和 Xcode 6.4),如果我从单独使用时工作的图像和正常文件创建 SKTextureAtlas,则正常映射光照会发生故障。看这个例子:

在此处输入图像描述

从左到右:

  • 带有纹理 + 法线 + 光照的精灵(来自地图集的纹理)
  • 具有纹理 + 法线的精灵(来自图集的纹理)
  • 带有纹理的精灵(来自地图集的纹理)
  • 具有正常纹理的精灵(来自图集的纹理)
  • 带有纹理 + 法线 + 光照的精灵(通过 imageNamed 从单个文件创建的纹理:)

该图集是在运行时使用 SKTextureAtlas atlasWithDictionary: 创建的,它包含以下纹理:

注意:如果我在 Xcode 中创建 Atlas 并通过 atlasNamed 加载它,我会遇到完全相同的问题: - 所以问题绝对不在于创建地图集的方式或时间,而是因为纹理是从第一个地图集中获得的地方。

如果我使用单个文件创建精灵,则照明工作(最右边的图像):

我对图集文件做了完全相同的事情,上面的屏幕截图证明我确实获得了精灵纹理的正确图像(左起第 3 和第 4 个),并且正常作为图集中的纹理。然而,结果是左起第一张图像,一个没有法线贴图的光照精灵。

我想知道,普通纹理是否需要一种 SKTextureAtlas 不适用的后处理形式?或者其他人在地图集中有正常纹理的问题吗?

或者这可能是一个错误?


更新:我在一个新的 SpriteKit 应用程序(OS X,在这里下载并自己尝试)中重现了这种行为,代码如下:

0 投票
1 回答
313 浏览

opengl - Three.js ColladaLoader bumpScale/weighting?调整凹凸贴图强度的方法

在当前的 ColladaLoader.js 中,我看不到任何读取或应用 Collada 标准的“加权”值 (0.0-1.0) 的内容,该值表示 Three.js Phong 材料中的凹凸强度或“bumpScale”。我注意到,当我从 Blender 导出我的 collada 时,它会立即在 three.js 中拾取凹凸材质(这非常简单 - 耶!)但我的材质总是得到默认 1.0 的夸张的凹凸比例。它使材料具有夸张的凹凸感。

我设法稍微编辑了我的 ColladaLoader 并尝试了我的理想值(0.05),但想知道我是否遗漏了什么或做错了什么?还有人试试这个吗?请注意,我在 json 导出方面运气不佳,所以我现在坚持使用 Collada。

谢谢

0 投票
1 回答
4279 浏览

graphics - 使用纹理贴图对球体进行凹凸贴图

我们想用纹理贴图对球体进行凹凸贴图。但是,球体表面的面积是纹理贴图面积的 10 倍(两者的面积都以像素为单位)。描述纹理贴图可用于凹凸贴图的不同方式。

0 投票
1 回答
129 浏览

opengl - 凹凸贴图黑色片段

目前我尝试为我的 OpenGL 项目实现凹凸映射。问题是我的立方体的相同部分是黑色的。如这张图片所示: 在此处输入图像描述

我几乎可以肯定我只是不明白着色器是如何工作的,所以我使用了来自 OpenGL Superbible 的着色器。这是我的代码:顶点着色器

和片段着色器:

我错过了什么?

0 投票
1 回答
828 浏览

c++ - 获取对象空间到纹理空间的切线

大学作业要求我使用顶点坐标,我必须从法线值计算法线和切线,以便创建对象空间到纹理空间矩阵。

我有制作矩阵和副法线所需的代码,但我没有计算切线的代码。我试图在网上查找,但答案通常让我感到困惑。你能清楚地向我解释它是如何工作的吗?

编辑:我已经更正了我之前写的内容,因为很明显我误解了作业。谢谢大家帮助我看到这一点。

0 投票
0 回答
607 浏览

three.js - 更改法线贴图强度的设置

我目前在three.js 中的法线贴图的正确视图存在问题。它看起来如附件所示。我认为这是法线贴图强度设置的问题。有没有办法区分法线和凹凸贴图强度。在另一个查看器(提供这种差异化)中,我可以通过提高凹凸贴图强度的强度来引发这种奇怪的外观。我会很感激任何建议。感谢和最良好的祝愿 Gerd

在three.js 查看器中具有纹理和法线贴图的对象

0 投票
1 回答
3260 浏览

javascript - 凹凸贴图对three.js中的纹理没有影响

我正在使用 THREE.ImageUtils 加载地图和凹凸贴图。地图的灰度图像用作凹凸贴图。在添加凹凸贴图时,它不会对其产生任何影响。

代码

凹凸贴图的重复包装是否可以作为贴图?

0 投票
1 回答
482 浏览

glsl - GLSL3 切线空间坐标和法线贴图

首先,我必须为发布关于这个主题的另一个问题道歉(已经有很多了!)。我确实搜索了其他相关的问题和答案,但不幸的是,他们都没有向我展示解决方案。现在我绝望了!:D

值得一提的是,下面发布的代码给出了令人满意的“颠簸”效果。似乎是场景启示错了。

现场:简直太简单了!一个立方体在中心,一个光源围绕它旋转(平行于地面)及上方。

我的方法是从我的基本光照着色器开始,它给了我足够的输出(或者我认为!)。第一步是修改它以在切线空间中进行计算,然后使用从纹理中提取的法线。

我试图很好地评论代码,但总之我有两个问题

1) 只做基本光照(没有法线贴图),我希望场景看起来完全一样,无论是否使用 TBN 矩阵将我的向量转换为切线空间。我错了吗?

2) 为什么我得到不正确的启蒙?

几个截图给你一个想法(编辑) - 在 LJ 的评论之后,我不再对每个顶点/面的法线和切线求和。有趣的是,它突出了这个问题(参见截图,我已经标记了光的移动方式)。

基本上,就好像立方体向左旋转了 90 度,或者,好像光是垂直而不是水平地转动

法线映射的结果:

法线映射的结果

带简单灯的版本:

带简单灯的版本

顶点着色器:

和片段着色器:

而已!我希望你有足够的信息,当然,你的帮助将不胜感激!:) 小心。

0 投票
0 回答
86 浏览

c++ - GLSL 凹凸映射点光源

识别任何逻辑错误?有什么建议可以改进此代码或增强结果吗?

图片:之前和之后

视频:演示当前凹凸贴图结果的短视频!

发送到顶点着色器的法线和切线向量是正确的。

片段着色器中的方法:

完整的顶点着色器:

光属性:

加载纹理的纹理管理器功能:

提前感谢您的任何建议!

0 投票
1 回答
1341 浏览

javascript - Three.js 凹凸贴图未更新

我有一个模型,在我的场景中加载.obj了相应的文件。加载后.mtl我正在应用它:bumpMap

这按预期工作。纹理只是一个map黑白.png图像。但是,如果我bumpMap在添加模型之前应用 not 就不会应用它。例如,此代码bumpMap不适用于模型:

只需添加超时并且bumpMap不再应用。model.bumpMap.needsUpdate = true;应用后添加bumpMap不会改变任何东西。