问题标签 [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.
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,在这里下载并自己尝试)中重现了这种行为,代码如下:
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。
谢谢
graphics - 使用纹理贴图对球体进行凹凸贴图
我们想用纹理贴图对球体进行凹凸贴图。但是,球体表面的面积是纹理贴图面积的 10 倍(两者的面积都以像素为单位)。描述纹理贴图可用于凹凸贴图的不同方式。
c++ - 获取对象空间到纹理空间的切线
大学作业要求我使用顶点坐标,我必须从法线值计算法线和切线,以便创建对象空间到纹理空间矩阵。
我有制作矩阵和副法线所需的代码,但我没有计算切线的代码。我试图在网上查找,但答案通常让我感到困惑。你能清楚地向我解释它是如何工作的吗?
编辑:我已经更正了我之前写的内容,因为很明显我误解了作业。谢谢大家帮助我看到这一点。
three.js - 更改法线贴图强度的设置
我目前在three.js 中的法线贴图的正确视图存在问题。它看起来如附件所示。我认为这是法线贴图强度设置的问题。有没有办法区分法线和凹凸贴图强度。在另一个查看器(提供这种差异化)中,我可以通过提高凹凸贴图强度的强度来引发这种奇怪的外观。我会很感激任何建议。感谢和最良好的祝愿 Gerd
glsl - GLSL3 切线空间坐标和法线贴图
首先,我必须为发布关于这个主题的另一个问题道歉(已经有很多了!)。我确实搜索了其他相关的问题和答案,但不幸的是,他们都没有向我展示解决方案。现在我绝望了!:D
值得一提的是,下面发布的代码给出了令人满意的“颠簸”效果。似乎是场景启示错了。
现场:简直太简单了!一个立方体在中心,一个光源围绕它旋转(平行于地面)及上方。
我的方法是从我的基本光照着色器开始,它给了我足够的输出(或者我认为!)。第一步是修改它以在切线空间中进行计算,然后使用从纹理中提取的法线。
我试图很好地评论代码,但总之我有两个问题:
1) 只做基本光照(没有法线贴图),我希望场景看起来完全一样,无论是否使用 TBN 矩阵将我的向量转换为切线空间。我错了吗?
2) 为什么我得到不正确的启蒙?
几个截图给你一个想法(编辑) - 在 LJ 的评论之后,我不再对每个顶点/面的法线和切线求和。有趣的是,它突出了这个问题(参见截图,我已经标记了光的移动方式)。
基本上,就好像立方体向左旋转了 90 度,或者,好像光是垂直而不是水平地转动
法线映射的结果:
带简单灯的版本:
顶点着色器:
和片段着色器:
而已!我希望你有足够的信息,当然,你的帮助将不胜感激!:) 小心。
c++ - GLSL 凹凸映射点光源
识别任何逻辑错误?有什么建议可以改进此代码或增强结果吗?
图片:之前和之后
发送到顶点着色器的法线和切线向量是正确的。
片段着色器中的方法:
完整的顶点着色器:
光属性:
加载纹理的纹理管理器功能:
提前感谢您的任何建议!
javascript - Three.js 凹凸贴图未更新
我有一个模型,在我的场景中加载.obj
了相应的文件。加载后.mtl
我正在应用它:bumpMap
这按预期工作。纹理只是一个map
黑白.png
图像。但是,如果我bumpMap
在添加模型之前应用 not 就不会应用它。例如,此代码bumpMap
不适用于模型:
只需添加超时并且bumpMap
不再应用。model.bumpMap.needsUpdate = true;
应用后添加bumpMap
不会改变任何东西。