Using physical lighting units with Enlighten and UE4.(Translated topic/Extra explaining)

Original topic by Silicon Studio Japan at 2019.Additional extra declaring by JPLee at 2021. This document is written in English and added Chinese using a baidu translator.It can include a number of mistranslations. Physical-based rendering (https://en.wikipedia.org/wiki/Physically_based_rendering) has become the standard … Using physical lighting units with Enlighten and UE4.(Translated topic/Extra explaining) 더보기

通过新的任天堂Switch模式了解CPU、GPU和温度状态

通过新的任天堂Switch模式确定CPU,GPU和温度状态 Writing by JP.Lee Nintendo Switch是任天堂开发的小型游戏机。 我认为,作为纯游戏用途的Nintendo Switch卖得好的原因是比智能手机小,易于操作,并且还支持Wi-Fi,因此可以多重博弈。 ​ 任天堂 Switch的配置和规格如下。 可以说,现有的iphone11顶级版本或者iPad Pro第三代的性能与任天堂Switch相似。 但是我个人认为,任天堂Switch具有专注于游戏性的内部设计结构,所以更优秀一点。 此外,安装在扩展坞的时候和手持式状态的优化系统也非常优秀。 ​ * CPU : NVIDIA TEGRA X1+ T210B01 * GPU : NVIDIA GM20B * RAM : LPDDR4X SDRAM 4GB * 网络 : 2.4GHz/5GHz支持至802.11ac。 蓝牙 4.0 … 通过新的任天堂Switch模式了解CPU、GPU和温度状态 더보기

在GPU避免分支的方法 [Translation & Addition]

在GPU避免分支的方法Unity Technologies Origianl Authored by Brandon Fogerty(XR Graphics Engineer at Unity Technologies.) Additional Organized by JP.Lee(李正彪)leegoonz@163.com概要这边来稿文章中,希望了解如何编写GPU着色器友好型代码,以避免和分支相关的性能费用。“分支”有着什么意义?使用明确的 if / then随时都可以产生分支。编译器遇到条件会作出命令。GPU可去的地方有两处。因此需要决定要使用哪种代码路径。以下示例展示了在汇编GPU里面运行的示例。运算变量设置为幻数7,则添加该数字。否则的话要减掉。 为什么要避免分支?为了增加CPU使用率,大多数计算机都尝试在管线上执行尽可能多的任务。汇编指令按顺序执行,CPU会尝试在尽可能多的CPU内核上执行尽可能多的指令。举个简单的例子。想象一下,在Twilight Zone内,我们就是世界上最高效的程序员! 用两行代码写了电子游戏! CPU会尽可能在每一个CPU内核上各执行一个,共计两个光荣的指令。这是计算机能够更有效的运行代码。 但是在分支时,计算机可能会花时间准备未运行的代码结果。从结论上看处理器时间被浪费,影响了游戏或应用程序的应答能力。CPU 侧分枝误诊通常会导致周期遗漏超过40次。– Charles Sanglimsuwan (集成开发人员相关工程师)运气不错,最新的CPU处理器速度惊人,实际分支预测出色,因此分支错失几乎不会有问题。但是GPU仍然存在性能问题。 GPU尝试并行解决大量计算,因此大部分GPU不支持分支预测GPU为什么会发生性能问题?GPU为生成美丽的图像,喜欢并行进行很多工作!GPU为进行多种固有的结果计算,进行了精心设计,解决了通过单一滤镜(例如:着色器程序)实施的多种输入和相关的问题。这就是渲染经常使用GPU(Graphics processor units)的原因。通过几个Shader程序运行位置,法线,贴图坐标等具有不同属性的固有顶点,该Shader程序输出在画面上表现的大量固有像素颜色。举个例子,显示器是1080 × 960这样的一般HD像素的情况下,GPU在一组输入时,将计算1080 × 960 = 1,036,800个的固有像素颜色值!那是很多的计算结果!想象一下在1080×960的高清游戏体验。游戏尝试每秒渲染60个固有的图像或帧。因此GPU在1秒之内需要计算1080x960x60以上的固有像素颜色值!结论上看一秒之内可以计算62,208,000个固有像素值!撰写本文的节点,NVDIA最现金的GPU是GeForce RTX 2080 Ti。它有着比英特尔最先进的CPU处理器i9-7980XE更多4,352个Cuda内核,18个内核。非常大的差异吧? … 在GPU避免分支的方法 [Translation & Addition] 더보기

综合研究基于物理的渲染算法Unity3D[Translation]

基于物理的渲染算法有关 Unity3D 的概括研究 来说说基于物理的渲染。基于物理的渲染(PBR)近几年非常火爆。Unity 5, 虚幻引擎 4, 寒霜引擎, 甚至是 ThreeJS, 更多的游戏引擎在使用它。很多 3D 模型工作室在根据 Marmoset Toolbag 和 Allegorithmic Substance Suite等人气工具转换成 “PBR Pipeline”。现在没几个不熟悉管线的美术,但是了解管线在后台是怎么运行的,很少有引擎和美术知道。我这个指南分解(分析) PBR 渲染 (shading),是想让初学者方便理解 PBR。让我们开始吧。 PBR的物理特征 在过去的 3 ~ 40 年,我们对周围世界的理解和科学上 / 数学上它是怎么运作的都有很多进步。而且这种理解在渲染技术领域也有了很大的发展。多位灵敏的研究者对光,视野,表面正常形态,然后这三个是怎么互相作用的有着深刻的结论。这种发展大部分是围绕 BRDF (双向反射率分布函数)和固有能量保存的想法为中心形成的。​如果想理解光和观测点跟Surface是怎么相互作用的,首先要理解Surface本身。光照射到完全光滑的表面几乎可以在表面形成完整的反射。光和我们叫做粗糙表面的东西相互作用的时候,他的反射不是类似的,这可以用微表面 (microfacets)的存在说明。 我们看物件的时候,要假设他的表面不是完全光滑的,而是用很小的面组成的。每个物件都是完整的 Specular reflection 。这个微表面(microfacets)通过光滑表面的法线,具有分布的法线。微表面法线的不同程度是根据表面粗糙度定的。表面越粗糙,高光损失的可能性就越大。所以粗糙的表面有更大更模糊的斑点。光滑的表面上,光的反射比之前更完整时可以压缩反射高光。 … 综合研究基于物理的渲染算法Unity3D[Translation] 더보기

PBR Specular D的几何学含义[Translation]

Original Topic from 그냥 그런 블로그 :: PBR Specular D 의 기하학적 의미 (tistory.com) This topic is a Chinese translation of the original text above. PBR Specular D的几何学含义 PBR( Physically Based Rendering )里成为大趋势的Cook-Torrance的Specular BRDF [1]定义如下: 这里面D函数是对于微表面(microfacet)的倾斜度的分布(Distribution)函数。本文档将对于本函数在几何学上的意义进行说明。 一个表面(surface)是由几个微表面构成,这是PBR理论的根本。而且构成表面的各微表面都有着不同的法线(normal)。另外微表面上发生了镜面反射(mirror reflection, 正反射)。 很多文档里面将这样的微表面的法线用m表示,也会用h表示。应该是microfacet … PBR Specular D的几何学含义[Translation] 더보기