问题标签 [ssao]
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.
three.js - 使用 SSAO 着色器在场景中出现奇怪的正方形
我正在运行以下代码(jsfiddle:http: //jsfiddle.net/sx9p7/):
我对 SSAO 着色器有疑问。我确实尝试了许多参数、代码、示例,但我仍然无法删除场景中间的那个正方形(有时看起来像正确的 SSAO 效果但位置错误???)
如果我要移除一个定向光片段,它就消失了——但仍然没有 SSAO 效果,阴影的分辨率仍然非常低。
opengl - 这个深度缓冲区可视化是否应该看起来很流畅?
我正在调试 SSAO 的问题并尝试可视化我的深度缓冲区。结果如下:
我将深度和法线存储在单个 16 位 RGBA 纹理中。这是我的深度通道着色器:
然后我在渲染纹理的着色器中可视化深度(我已经硬编码了近平面和远平面的距离):
结果应该看起来很顺利还是可能是什么问题?我正在创建这样的纹理:
animation - 带蒙皮/动画模型的 ThreeJS SSAO 着色器
ThreeJS 中包含的 SSAO 着色器是否与蒙皮/动画模型兼容?我在这里的沙箱中实现了 SSAO 着色器:
http://www.titanpass.com/game_development/my_first_game/index.html
奇怪的是,当它们移动时,你会注意到所有怪物周围都有一种白色的外壳。这是不随蒙皮动画更新的 SSAO 效果。
对此问题的任何建议或见解将不胜感激。
c++ - DirectX 9 HLSL SSAO?
我需要一个 DX9 HLSL SSAO 着色器,但我对着色器的了解有限。我正在努力学习以便我可以写一个,但这是一个陡峭的曲线。
我不了解 SSAO 的大部分理论,所以任何深入的解释都会很棒。
虽然我不需要代码来理解理论,但通常我通过阅读真实代码(即使它只是一小段代码)来学得最好。
考虑到这一点,我的问题是:如何使用 DirectX 9 进行 SSAO?
c++ - GLSL - SSAO:获取深度位置时得到不希望的结果
我正在尝试根据本教程实现 SSAO:http: //john-chapman-graphics.blogspot.com/2013/01/ssao-tutorial.html。我似乎不明白如何实现这一点,并且在我的片段着色器中不断得到不希望的结果。
首先,我设置我的着色器以传入深度缓冲区、相机的投影矩阵和 4x4 噪声纹理。ssao 内核已经被初始化并传递给着色器。我还从深度缓冲区中采样法线。
编辑:起初我以为我得到的深度位置不正确,所以我添加了一个名为 positionFromDepth 的新函数,但它似乎仍然不起作用......
我的片段着色器:
当我移动相机时,被遮挡的样本会发生变化。结果如下所示:
我假设我在对深度位置进行采样时做错了,但也许我对投影矩阵也做错了。uProjection 矩阵应该转置还是倒置?任何人都可以识别问题吗?
还要忽略我还没有完成模糊通道的事实。
three.js - three.js 中 json 对象上的 SSAO 产生黑屏
我有一个项目,目前它的工作非常好。但我想添加一些 SSAO 以使其进入下一步。
您可以在此处找到工作示例:http: //www.wp11244834.server-he.de/3d-test/3d-testJUN14-JSON.php
我删除了纹理以使其更简单。所以现在我尝试从这里添加 SSAO 代码: 单击
但我得到的只是黑屏。
我真的很坚持这一点。我必须将 SSAO 添加到整个屏幕还是对象本身?或者我必须修改代码的哪一部分。
顺便提一句。这是我的完整代码。SSAO 被注释掉。
提前感谢您提供任何帮助或建议或更正代码。
我去掉了灯部分和类似的东西。
three.js - Three.js 中的自定义 ssao
我正在尝试从教程中完成 ssao 着色器:http ://www.nutty.ca/?page_id=352&link=ssao
我在 three.js 中使用多通道渲染。在 Stackoverflow SSAO artefacts in Three中有一个类似的问题,我发现我们是从同一个教程中学到的。我详细按照教程进行操作,我不知道我渲染的哪个纹理是完全错误的。有人有什么想法吗?谢谢你!按照教程,我将整个场景存储在颜色 tDiffusion 纹理中:
,将视图空间位置存储到 tPosition 纹理:
,将视图空间线性深度存储到 tDepth 纹理:
,着色器是这样的:
将视图空间法线向量存储到 tNormal 纹理
:
然后根据 tDepth、tPosition 和 tNormal 来计算 ao。
然而,Ao似乎错了。将我的纹理与 turtorial 进行比较,我没有发现哪里有问题。从三中的 SSAO artefacts来看,可能在 Normal 生成中存在问题。但我真的生成了正常的视图空间。只有 Ao 图片:
Ao 带颜色场景:
教程中的 SSAO 着色器:“custom_NVD_SSAOShader”:{制服:{
openscenegraph - 使用 OpenSceneGraph 的 SSAO、优化和管道
我对 SSAO 技术实现有一些疑问:
它真的需要每个几何图形都有第二个(或更多)管道吗?我的意思是,我找到了一些关于它的教程和资料,但大多数情况下它们只是给你指导,而不需要输入更多细节。
有没有可能的优化?我正在使用 OSG,我的印象是,如果您将纹理发送给 CPU,然后再扔给 GPU,这可能不是最好的解决方案。
是否可以使着色器在缓冲区中生成具有样本深度的纹理,并将其发送到第二个管道线,仅使用屏幕的四边形、颜色、场景的深度和测试的深度?我正在使用 osg,但在文档中找不到如何正确执行此操作。
javascript - Three.JS 中的 SSAO 和多场景
我被困在这个问题上,并且已经研究了几个小时。
我正在尝试使用 EffectComposer 渲染我的场景,以便我的背景对象没有 SSAO(在我的真实项目中,它是一个程序城市)和我的前景对象(在我的真实项目中是我想要调用的两座建筑物出并且有不同的材料)做有SSAO。
正如您在下面的小提琴中看到的那样,蓝色立方体(它是 bg 场景的一部分)被红色立方体(在 FG 场景中)的 SSAO 渲染覆盖。显然,这种效果是不可取的。
我怎样才能让它正常工作?
谢谢!
-亚当
http://jsfiddle.net/Lbddvnsp/1/
更新:
我尝试将具有黑色覆盖材料的 bgScene 添加到深度目标渲染中,只是为了看看它是否会遮盖 SSAO。http://jsfiddle.net/5d7Lk7eu/1/ - 虽然在这个小提琴中很难看到(但我可以在我的真实项目场景中看到它)......实际上在 bgScene 对象中渲染的是 fgScene 的剪影,并且它不再将 SSAO 通道完全渲染在 bgScene 之上。所以,我觉得我更接近了,但我仍然卡住了。
更新 2:*
下图(你可以看到火星面具透过地球)可能是这个问题的更清晰的视觉示例(虽然这张没有使用 SSAO,但我相信这两个问题是相关的):