问题标签 [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.

0 投票
1 回答
455 浏览

three.js - 使用 SSAO 着色器在场景中出现奇怪的正方形

我正在运行以下代码(jsfiddle:http: //jsfiddle.net/sx9p7/):

我对 SSAO 着色器有疑问。我确实尝试了许多参数、代码、示例,但我仍然无法删除场景中间的那个正方形(有时看起来像正确的 SSAO 效果但位置错误???)

如果我要移除一个定向光片段,它就消失了——但仍然没有 SSAO 效果,阴影的分辨率仍然非常低。

0 投票
2 回答
683 浏览

three.js - Three.js - SSAO缺陷透明区域

根据这个SSAO 示例,我一直在尝试将 SSAO 添加到我的游戏中

不幸的是,我的透明树现在叛逃了: 在此处输入图像描述

请告知如何解决它。

0 投票
1 回答
662 浏览

opengl - 这个深度缓冲区可视化是否应该看起来很流畅?

我正在调试 SSAO 的问题并尝试可视化我的深度缓冲区。结果如下: 在此处输入图像描述 我将深度和法线存储在单个 16 位 RGBA 纹理中。这是我的深度通道着色器:

然后我在渲染纹理的着色器中可视化深度(我已经硬编码了近平面和远平面的距离):

结果应该看起来很顺利还是可能是什么问题?我正在创建这样的纹理:

0 投票
1 回答
602 浏览

animation - 带蒙皮/动画模型的 ThreeJS SSAO 着色器

ThreeJS 中包含的 SSAO 着色器是否与蒙皮/动画模型兼容?我在这里的沙箱中实现了 SSAO 着色器:

http://www.titanpass.com/game_development/my_first_game/index.html

奇怪的是,当它们移动时,你会注意到所有怪物周围都有一种白色的外壳。这是不随蒙皮动画更新的 SSAO 效果。

对此问题的任何建议或见解将不胜感激。

0 投票
0 回答
833 浏览

c++ - DirectX 9 HLSL SSAO?

我需要一个 DX9 HLSL SSAO 着色器,但我对着色器的了解有限。我正在努力学习以便我可以写一个,但这是一个陡峭的曲线。

我不了解 SSAO 的大部分理论,所以任何深入的解释都会很棒。

虽然我不需要代码来理解理论,但通常我通过阅读真实代码(即使它只是一小段代码)来学得最好。

考虑到这一点,我的问题是:如何使用 DirectX 9 进行 SSAO?

0 投票
1 回答
992 浏览

c++ - GLSL - SSAO:获取深度位置时得到不希望的结果

我正在尝试根据本教程实现 SSAO:http: //john-chapman-graphics.blogspot.com/2013/01/ssao-tutorial.html。我似乎不明白如何实现这一点,并且在我的片段着色器中不断得到不希望的结果。

首先,我设置我的着色器以传入深度缓冲区、相机的投影矩阵和 4x4 噪声纹理。ssao 内核已经被初始化并传递给着色器。我还从深度缓冲区中采样法线。

编辑:起初我以为我得到的深度位置不正确,所以我添加了一个名为 positionFromDepth 的新函数,但它似乎仍然不起作用......

我的片段着色器:

当我移动相机时,被遮挡的样本会发生变化。结果如下所示:

SSAO 着色器的结果

我假设我在对深度位置进行采样时做错了,但也许我对投影矩阵也做错了。uProjection 矩阵应该转置还是倒置?任何人都可以识别问题吗?

还要忽略我还没有完成模糊通道的事实。

0 投票
0 回答
351 浏览

three.js - three.js 中 json 对象上的 SSAO 产生黑屏

我有一个项目,目前它的工作非常好。但我想添加一些 SSAO 以使其进入下一步。

您可以在此处找到工作示例:http: //www.wp11244834.server-he.de/3d-test/3d-testJUN14-JSON.php

我删除了纹理以使其更简单。所以现在我尝试从这里添加 SSAO 代码: 单击

但我得到的只是黑屏。

我真的很坚持这一点。我必须将 SSAO 添加到整个屏幕还是对象本身?或者我必须修改代码的哪一部分。

顺便提一句。这是我的完整代码。SSAO 被注释掉。

提前感谢您提供任何帮助或建议或更正代码。

我去掉了灯部分和类似的东西。

0 投票
0 回答
974 浏览

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”:{制服:{

0 投票
1 回答
510 浏览

openscenegraph - 使用 OpenSceneGraph 的 SSAO、优化和管道

我对 SSAO 技术实现有一些疑问:

  1. 它真的需要每个几何图形都有第二个(或更多)管道吗?我的意思是,我找到了一些关于它的教程和资料,但大多数情况下它们只是给你指导,而不需要输入更多细节。

  2. 有没有可能的优化?我正在使用 OSG,我的印象是,如果您将纹理发送给 CPU,然后再扔给 GPU,这可能不是最好的解决方案。

  3. 是否可以使着色器在缓冲区中生成具有样本深度的纹理,并将其发送到第二个管道线,仅使用屏幕的四边形、颜色、场景的深度和测试的深度?我正在使用 osg,但在文档中找不到如何正确执行此操作。

0 投票
0 回答
1410 浏览

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,但我相信这两个问题是相关的):

问题示例