Tutorials

(CN)Nintendo Switch game contents GPU Frame profiling.

在撰写本文之前,我想指出我是Nintendo Switch的真实用户。请注意,本文仅涉及如何使用仿真器进行分析来分析GPU框架。 Nintendo Switch game 是一个页面,它汇总了使用 Frame debug 进行分析的方法 Summary Emulator CEMU Emulator YUJU Emulator Early version. INTEL GPA GPU Analyzer.  RenderDoc ControllerProfile. 在上面两个中选一个就可以。 建议准备游戏控制器。您可以在淘宝等处购买任天堂Switch的游戏控制器,也可以使用XBOX ONE或PS4的游戏控制器。* 您可以使用键盘,但设置不方便。 Roms 表示为 Nintendo Switch game。最近,大多数可以使用伦克下载的地方消失了 Controller Profile. https://1drv.ms/u/s!An-MyWbumfPY0qkzrzNZA6MiYsNRUA?e=DVmB4D CEMU 设置和环境设置。 通常使用 CEMU  设定 准备物. 按顺序设置 最新CEMU 安装文件 http://cemu.info/releases/cemu_1.21.3.zip CEMU HOOK FILE https://files.sshnuke.net/cemuhook_1159_0573.zip 解压缩并将所有档案CEMU复制到可执行文件所在的目录。 CEMU GraphicPack https://slashiee.github.io/cemu_graphic_packs/ 解压缩并复制所有目录,并将其粘贴到 CEMU […]

[CN]Physically Based Shading in Theory and Practice. SIGGRAPH 2020 Course

Course OrganizersStephen Hill Lucaslm Stephen McAuley Sony Santa Monica Studio Presenters Laurent Belcour Unity Technologies Will Earl MPC Film Niklas Harrysson Autodesk Sebastien Hillaire Epic Games Naty Hoffman Lucaslm Lee Kerley Sony Pictures Imageworks Jasmin Patry Sucker Punch Productions Rob Pieke SideFX Igor Skliar MPC Film Jonathan Stone Lucasfilm Additional Contributors Pascal Barla Inria Megane […]

[KOR]Physically Based Shading in Theory and Practice. SIGGRAPH 2020 Course

Course OrganizersStephen Hill Lucaslm Stephen McAuley Sony Santa Monica Studio Presenters Laurent Belcour Unity Technologies Will Earl MPC Film Niklas Harrysson Autodesk Sebastien Hillaire Epic Games Naty Hoffman Lucaslm Lee Kerley Sony Pictures Imageworks Jasmin Patry Sucker Punch Productions Rob Pieke SideFX Igor Skliar MPC Film Jonathan Stone Lucasfilm Additional Contributors Pascal Barla Inria Megane […]

How to modify to mipmap bias more easily? Case Study

Unity引擎mipmap偏差值的默认值为“ -100”。通常,推荐值为“ -0.5”。但要自己设置艺术家。如何更改设置?研究如下。您可以使用随附的Unity项目对其进行测试。 The default value for the Unity engine mipmap bias value is “-100″. In general, the recommended value is “-0.5″. But set up the artist yourself. How can I change the settings? Study below. You can test it using the attached Unity project. Trilinear sampling is recommended and there is no difference in anisotropic […]

Blur control-Mipmap bias handling

请先阅读。最新的Unity版本的Kaiser滤镜无法达到传统的NVIDIA Kaiser滤镜结果。实际上,Unity公司修改了Kaiser滤镜结构,但这是加快导入纹理速度的一种方法。甚至最新的2020年Kaiser过滤器版本也比以前更清晰。Read it first.The latest Unity version of the Kaiser filter does not reach the traditional NVIDIA Kaiser filter results.In fact, the Unity company modified the Kaiser filter structure, but it was a way to speed up the Import Texture.Even the latest 2020 version of Kaiser filter isn’t sharper than it used to be. 我不会详细解释Mip贴图,因为我们的学生已经知道Mip贴图基本上是什么。请参考下图。I […]

Voxelizations of Shadow for mobile. Case Study.

This article was translated into English in my own way after listening to the presentation of voxel-based shadow processing research released by the Unity Spotlight team in 2019.While living in China, I participated in the development of two mobile MMO Rpg( Fully Open World Mobile MMORPG ).Real-time shadow handling is a very difficult optimization difficulty.I […]

Difference between Texture Array and Texture Atlas (simplified version)

在Unity 做Rendering相关优化时不得不使用TextureArray 。这是因为Unity里为了减少 DrawCall 而使用的 Batching。简单来说新画的material和Mesh种类越多,DrawCall 就会越多。但是 DrawCall 不便宜,会消耗很大的CPU性能。所以Unity 会自动进行 Batching 。使用同样的material就会自动捆绑,使用同样的Mesh也会自动捆绑。所以 Batching 跟 DrawCall 次数是一样的概念。 为了减少 Batching 的次数,减少material的方法对应的就是 TextureArray 。比这个还常用的方法是 TexutreAtlas ,但这种方法很单纯。在一张贴图上添加所有图片,修改UV的时候才会用。一般是在UI 图片上设置Sprite的时候会用到, Unity有一种把 Sprite合并在UGUI 功能上做成 TextureAtlas 的功能。但是3D 物体的UV 就不一样了。UV 坐标是 0和 1之间的值组成的,如果想把很多张贴图设置在一起的UV坐标合并在一起重新设置的话会非常麻烦。如果合并前的贴图在合并后又增加的话就更麻烦了。这样最终就成了生产效率的问题,所以会用其他方法,而这个方法就是 TextureArray 。 TextureArray的概念很简单,是把贴图按列进行捆绑,只要有Index就可以一个个参考使用。就是说跟UV的2D坐标一起,再有一个Index就可以。TextureArray的优点是,不会跟TextureAtlas一样需要一直合并和修改UV,只要根据 Mesh设置Index就可以很容易操作。而且不管贴图的数量是多少, material 可以维持一个的状态所以很便捷。但是要用在Unity有几个缺点。因为不支持Asset生成,所以很麻烦,显示的GUI在Unity内部也是不支持的。为了使用起来方便,需要亲自编辑代码。当然直接生成也没关系,但考虑生产效率的问题就不是很好了。而且Shader代码也要亲自替换,有很多需要设置的地方。所以很贵。 现在适用到 Unity 里看下。 需要做的有三件事。 把Mesh 里的简单的2D UV坐标 换成持有(UV + Texture Index)坐标的3D坐标。 生成TextureArray并适用 在Shader 代码里使用TextureArray ,把 UV 坐标换成3D坐标。 *有关例子做好附上了,想参考的人请看下。 替换UV坐标根据情况不同,一般是设置成了2D UV坐标,只考虑程序的合并工作的话,添加可以给每个Mesh插入相应的Texture Index的component比较好。 只在刚开始的时候修改UV 信息就可以了,所以除了加载时间变长和占用更多的GPU 容量外,没有其他问题。担心初期的加载时间的话,添加在编辑器就可以了。参考例子里因为是刚开始的时候全部生成,所以把储存成 Vector2 的 UV坐标换成Vector3 ,插入了Texture Index。 TextureArray部分的操作最复杂。在component动态生成是最好的,但这种方法每次都要修改component所以更复杂。所以看参考例子就能知道,做了简单的做好lapping的assets。但还有一点很复杂, 生成后不能在编辑器里修改贴图数量和其他一些东西,所以几种条件中有一条出问题就要重新生成。这样和material的连接就会断了,,这是非常头疼的问题。

对Reflection的误解(漫反射&镜面反射)

jplee23年的游戏开发商。 技术美术总监。 渴望退休的独立开发商。半灰、max、游丝结、戏剧常量、熊掌等 6 人赞同了该文章 Written by JP.Lee心动的 Technical art team leader.leegoonz@163.com 对Reflection的误解(漫反射&镜面反射) 字面含义 我们通常使用diffuse reflection(漫反射 ) 和 specular reflection( 镜面反射 ) 这两种术语。但真的懂得其含义吗? 首先来看看diffuse的字面含义。 1.散开;四散 ( 光, 热量, 味道等 ) 2. 传播(知识) ,普及, 舒缓( 情绪等 ) 3. ( 气体或液体) 弥漫;漫射;发散 来自:百度翻译 跟大家知道的意思一样吗? 下面来看看specular 的字面含义。 1. 镜子似的,反射的,反映的 2. ( 光学 )正反射性的 来自:百度翻译 这也跟大家知道的意思一样吗? 现在看看是否跟实际含义一样。 Diffuse反射在粗糙的表面形成? 很多人觉得diffusereflection 是因表面粗糙而形成的。特别是PBR […]