Questions tagged «rendering»

4
反照率与扩散
每当我认为我理解两个术语之间的关系时,就会得到更多使我感到困惑的信息。我以为它们是同义词,但是现在我不确定。 “ diffuse”和“ albedo”有什么区别?它们是可互换的术语还是在实践中用来表示不同的事物?

3
什么时候计算着色器比像素着色器更有效地进行图像过滤?
图像过滤操作(例如模糊,SSAO,Bloom等)通常使用像素着色器和“聚集”操作完成,其中每个像素着色器调用都会发出许多纹理提取操作以访问相邻像素值,并计算单个像素的值结果。这种方法在理论上效率低下,因为完成了许多冗余提取:附近的着色器调用将重新提取许多相同的纹理像素。 另一种方法是使用计算着色器。这些具有的潜在优势是能够在一组着色器调用之间共享少量内存。例如,您可以让每个调用获取一个纹理元素并将其存储在共享内存中,然后从那里计算结果。这可能会或可能不会更快。 问题是在什么情况下(如果有的话)compute-shader方法实际上比pixel-shader方法更快?它是否取决于内核的大小,它是什么类型的过滤操作等?显然,答案从一个GPU型号到另一个GPU都不同,但是我很想听听是否存在任何普遍趋势。

2
虚拟纹理实际上如何有效?
作为参考,我指的是idTech 5的MegaTexture技术首次(我相信)引入的技术的“通用名称” 。请观看此处的视频,以快速了解其工作原理。 最近,我一直在浏览与之相关的一些论文和出版物,而我不明白的是它可能如何有效。它是否需要不断将“全局纹理页面”空间中的UV坐标重新计算为虚拟纹理坐标?那怎么不抑制大多数对几何图形进行批处理的尝试?如何允许任意放大?在某个时候它是否不需要细分多边形? 有太多我不了解的东西,而且我无法找到关于该主题的任何实际上容易接近的资源。

3
避免与重合表面发生Z角战斗
渲染两个重叠的共面曲面时,一个常见的问题是“ z-fighting”,即渲染器无法确定两个曲面中的哪个更靠近相机,从而在重叠区域产生视觉伪像。 标准的解决方案是在设计模型时使表面略有偏移。还有其他解决方案吗?
26 rendering 

2
相关样本如何影响Monte Carlo渲染器的行为?
大多数有关蒙特卡洛渲染方法的描述(例如路径跟踪或双向路径跟踪)都假定样本是独立生成的;也就是说,使用标准随机数生成器来生成独立,均匀分布的数字流。 我们知道,在噪声方面,并非独立选择的样本可能会有所帮助。例如,分层采样和低差异序列是相关采样方案的两个示例,它们几乎总是可以改善渲染时间。 但是,在许多情况下,样本相关性的影响并不那么明确。例如,马尔可夫链蒙特卡罗方法(例如Metropolis Light Transport)使用马尔可夫链生成相关样本流。多光方法将一小束光路重用于许多相机路径,从而创建许多相关的阴影连接;甚至光子贴图也可以通过重用许多像素之间的光路来提高效率,同时还可以提高样本相关性(尽管有偏见)。 所有这些渲染方法在某些场景中都可以证明是有益的,但在其他场景中似乎会使情况变得更糟。除了用不同的渲染算法渲染场景并盯着一个外观是否比另一个外观好外,尚不清楚如何量化这些技术引入的错误质量。 所以问题是:样本相关性如何影响Monte Carlo估计量的方差和收敛性?我们能否以数学方式量化哪种样本相关性比其他样本更好?还有其他考虑因素可能会影响样本相关性是有益还是有害(例如,感知错误,动画闪烁)?

2
地下散射的“偶极近似”是什么?
如果您阅读有关地下散射的论文,那么您会经常遇到对称为“偶极近似”的参考。这个术语似乎可以追溯到Henrik Wann Jensen等人的论文《地下光传输的实用模型》,但是这篇论文很难理解。 谁能用相对简单的术语解释什么是偶极子近似,以及如何在渲染地下散射时使用它?

3
OpenGL中的渲染与3D动画软件之间的区别
使用OpenGL等,我可以“实时” 60 FPS渲染出一些令人惊叹的外观。但是,如果我尝试用Maya或3ds Max制作相同场景的视频,即使分辨率和FPS相同,渲染时间也要长得多。 为什么这两种类型的渲染要花相同的时间花费不同的时间? 注意:是的,我的确意识到3D动画软件可以产生比实时图像更高级的图像。但是对于这个问题,我指的是一个同样复杂的场景。

3
环境图的重要性抽样
在基于MIS的单向路径跟踪器和类似类型的渲染器中,对环境地图(EM)进行采样的最佳方法是目前已知的最佳方法,并且也是经过生产验证的理想方法?与那些以超复杂且难以理解的实现为代价提供完美采样的解决方案相比,我宁愿选择相对复杂且功能合理的解决方案。 到目前为止我所知道的 有一些简单的EM采样方法。可以以余弦加权的方式采样所需的半球,而忽略了BSDF和EM函数形状。结果,它不适用于动态EM: 为了将采样提高到可用水平,可以对整个球体上的EM亮度进行采样。它相对容易实现,并且效果很好。但是,采样策略仍然忽略了半球可见性信息和余弦因子(以及BSDF),从而导致表面上的高噪声,而这些噪声并未被EM的高强度区域直接照亮: 文件 我找到了一些有关该主题的论文,但尚未阅读。其中任何一个值得在前向单向路径跟踪器中阅读和实现,还是有更好的选择? Agarwal等人(2003年)对环境图进行结构化重要性抽样。 Kartic Subr和Jim Arvo撰写的Steerable Importance Sampling(2007)。他们声称提出了“ ...一种用于环境图的有效分层重要性抽样的算法,该算法在考虑到余弦加权的情况下,在由任意表面的局部方向定义的正半球中生成样本。“论文《重要采样球谐函数》对此发表了评论:“他们创建了环境图的三角表示,并在每个顶点处存储了照明度并乘以前九个球谐基函数中的每一个。这形成了一个可操纵的基础,在该基础上可以将夹紧的余弦有效地旋转到任何方向。” Petrik Clarberg和TomasAkenine-Möller的直接照明实用产品重要性采样(2008)。一种对环境地图光照和表面反射率乘积进行采样的算法。使用基于小波的重要性抽样。 Jarosz,Carr和Jensenn撰写的《重要采样球形谐波》(2009年)。摘要说:“ ...我们提出了第一种实用的重要采样函数,表示为球谐(SH)...” Feng et al。(2015)的基于色调映射的均值漂移环境地图采样。这是很新的东西,我既没有找到它的参考,也没有找到论文本身。

3
有什么方法可以在OpenGL中渲染透明度
可以启用Alpha混合以使表面透明,如下所示: glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 但这仅在对象以从前到后的顺序渲染时才有效。否则,背景中的物体会出现在较近的物体之前,例如下图的地板。对于粒子和GUI元素,可以进行排序,但是对于三角形网格,似乎需要太多的努力和速度,如此处所述:https : //www.opengl.org/wiki/Transparency_Sorting。 有哪些常见方法可以解决此问题?我知道这是相当广泛的,不需要深入的实现细节,而只是对一些方法以及可能涉及的内容进行了简要说明。

4
对于着色器数学,为什么线性RGB保持sRGB的色域?
sRGB通常与“线性RGB”形成对比。 图像存储在磁盘上,并以sRGB的形式传递到显示器,其强度在视觉上大致均匀。 着色器数学是在线性RGB上完成的,线性RGB在强度上是均匀的。 可以应用伽玛校正在两者之间进行转换。 现在,sRGB有一个标准,该标准可比色地指定其色域,准确说明纯红色,绿色,蓝色和白色的位置。但是,对于“线性RGB”没有相应的标准。 色度图上的任何三角形都可以说是线性的,实际上,有几个众所周知的色域可供选择: 实际上,当我们说“线性RGB”时,是指“没有伽马校正的sRGB”。(这是我们在将sRGB伽玛校正作为最后的后处理步骤但忽略其余渲染管线的颜色空间时所做的工作。) 但是,为什么是 RGB色域的正确使用进行插值,照明计算?似乎是任意的。如果有的话,我们不是要使用最大可能的色域进行内部计算,然后最后将颜色裁剪或缩放到输出设备的色域吗? 不管是什么,RGB照明都将是近似的,所以我们选择哪种色域都没有关系,我们还可以选择最接近显示器本身支持的色域?只是过失吗?还是以某种方式在这些不同色域中进行计算实际上得出了完全相同的结果?

3
Cook-Torrance / Torrance-Sparrow模型的正确镜面项
一段时间以来,我一直在进行基于物理的渲染这一主题的研究。一遍又一遍提到的反射模型是Cook-Torrance / Torrance-Sparrow模型。在此模型的每次提及或解释中,似乎都使用了不同形式的镜面反射项。我发现的版本是: Fd g ^π(N⃗ ⋅ V⃗ )(N⃗ ⋅ 大号⃗ )FDGπ(N→⋅V→)(N→⋅L→){\frac {FDG}{\pi ({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}} Fd g ^4 (N⃗ ⋅ V⃗ )(N⃗ ⋅ 大号⃗ )FDG4(N→⋅V→)(N→⋅L→){\frac {FDG}{4 ({\vec N}\cdot {\vec V})({\vec N}\cdot {\vec L})}} Fd g ^(N⃗ ⋅ V⃗ )(N⃗ ⋅ 大号⃗ )FDG(N→⋅V→)(N→⋅L→){\frac {FDG}{({\vec N}\cdot {\vec …

4
哪些物理属性“不足”以阻止此3D场景看起来像真实照片?
因此,我知道我基本上是在寻求确定创建逼真的3d图形时要解决的主要问题,但是作为一个在该领域没有太多技术经验的人,我很好奇,如果可以确定这些问题,那么问题出在哪里?以编程方式实施它们。 以下来自杀手的图片是我所说的“超现实”。但是,它肯定仍然看起来像3D模型。如果您要用真实的演员和背景拍摄同一场景的照片,那么可能会有一些明显的差异,足以指出哪个是哪个。 这是为什么?<100%准确的次表面散射?灯光是否过小?等等 PS,抱歉选择标签。我对该SE不够熟悉,无法选择。如果您知道,请在其中进行更好的编辑。

1
海浪渲染
我如何为带有白帽和泡沫且波动强度可变的水体生成波浪?表面是具有法线贴图的网格吗?是否有生成该公式的公式?是否有类似的方法可以确定在哪里以及如何渲染白帽?我碰到了这篇论文,但不是很清楚。 在本文中,我了解了有关波浪产生的部分。有专门针对白帽和泡沫的部分,它确实提供了生成白帽和泡沫的公式,但是您如何仅将其应用于需要它的水部分?根据我的观察,它只是将F表示为需要白帽的区域,有人可以阐明它的工作原理吗?

2
人体指甲的渲染将涉及哪种技术?
有许多参考文献涉及基于物理的人体模型,如皮肤,头发,眼睛等。 但是,我找不到有关模拟逼真的指甲的特定信息。例如,我没有发现人类指甲对光反应的特征的特异性。 我有一些想法: 根据Wikipedia的文章,指甲“由坚硬的保护性蛋白质制成,称为角蛋白。(...)由死皮细胞组成”。 头发也是由角蛋白组成的,所以指甲的渲染可能与头发的渲染有一些相似之处?但是,我认为头发渲染的主要特征是由于头发纤维内部的内部反射而使镜面高光着色。这种现象是否显着或者甚至发生在指甲上? 检查表明指甲是透明的,并且它们具有亚表面散射效应。是否有结合这些现象的模型? 与皮肤的接近也似乎表明指甲下的皮肤具有奇异的外观特性。该层是否也需要模拟某些特定技术? 将涉及哪种技术来精确模拟人指甲的渲染? 数字艺术家使用哪种技巧来模拟人类指甲的外观?

1
单散射微面BSDF模型中的能量损失补偿
Walter等人针对粗糙介电表面的单散射基于微面的表面模型(例如原始的Torrance-Sparrow BRDF)或派生模型(例如BSDF)。忽略了微面之间的光的相互反射,这导致能量损失,导致变暗,尤其是在较高的粗糙度值下。 使用炉子测试可以很容易地证明这个问题。下图显示了我使用Smith模型和GGX分布对粗糙度参数从0.2到1.0进行导电微刻面BRDF的实现的行为(此处故意将菲涅耳系数设置为1,以使问题更容易看到): 使用Smith模型和GGX微面分布对粗糙度参数从0.2到1.0的粗糙电介质(IoR 1.51)BSDF进行炉试验: 埃里克·海茨(Eric Heitz)等。Heitz最近在LuxRender论坛上提出了一种多重散射模型,该模型可以通过完全解决光相互作用来解决变暗问题,但是由于其评估程序的随机性,因此存在性能问题。 是否存在已知的补偿方法来恢复单散射模型的能量损失?不一定在物理上是正确的,但至少不会破坏物理上的合理性(亥姆霍兹互惠性和能量守恒),并且理想情况下无需手动调整参数。 在迪士尼BSDF中,有一个称为“光泽”(基本上是基于菲涅耳的光泽叶)的参数化成分,可用于补偿边缘变暗,但是正如他们在Siggraph 2015课程中提到的,这是非常特殊的方法: “ ...这非常近似,对于其他粗糙度值效果不佳...” 在上述意见从埃里克·海茨中的LuxRender论坛还建议使用一些补偿黑客,但不幸的是,不会进入任何细节: 据我所知,您可以使用一些更简单的技巧来改善单个散射模型中的能量节省(例如调整反照率)。但是,如果这样做,则在不破坏BSDF的可逆性的情况下就无法获得完美的节能材料(例如,完美的白色毛玻璃)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.