Tutorials

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 […]

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 […]

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 […]

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

jplee23年的游戏开发商。 技术美术总监。 渴望退休的独立开发商。半灰、max、游丝结、戏剧常量、熊掌等 6 人赞同了该文章 Written by JP.Lee心动的 Technical art team leader.leegoonz@163.com 对Reflection的误解(漫反射&镜面反射) 字面含义 我们通常使用diffuse reflection(漫反射 ) 和 specular reflection( 镜面反射 ) 这两种术语。但真的懂得其含义吗? 首先来看看diffuse的字面含义。 1.散开;四散 ( 光, 热量, 味道等 ) 2. […]

技术美术师的定义

JP.Lee 心动 Tech art team leader as expert. leegoonz@163.com 技术美术师的定义有技术知识的美术师。我把这个解释为一半美术师,一半程序员。另外,可以定义为能够将逻辑部分和非逻辑部分很好地混合运用的人。 可以在技术领域内执行的小角色划分。 LIGHTING STAGE SUPPORT. 最近的游戏照明技术已经发展到可以像电影一样表现视觉上的自然感。 但从根本上Lighting Stage是Production Design 的一部分,它具有引导游戏节奏或协助某些场景叙事表达的作用,并全面确立美术指导者追求的新风格时最重要的工具。 因此,技术美术师必须充分了解最新渲染引擎中包含的照明技术细节,并与美术指导者或照明美术师进行沟通,最终起到引领最佳照明效果的重要作用。 首先,需要大量的渲染理论知识,且要求可以轻松改写与照明相关的代码(Shader and post-processing等领域) 的级别。 此外,视频表现技术的艺术理论也要扎实。 从试图结合古典电影的制作设计手法尝试(Bioshock 系列可以作为一个很好的例子),到现代电影制作设计手法,都需要进行理论研究。 所有这些电影技法都应用于动画或最近的游戏开发技术领域里。 与动画设计一样,玩家在游戏中可以获得的各种体验,也可以从灯光营造的氛围中获得。 同样,对于FPS或TPS游戏,照明设计本身也成为关卡设计(Level […]

Tile Based Deferred Rendering

Written by JP.Lee心动的 Technical Art team leader. Immediate ModeRendering (IMR) 把三角形Rasterizing,以像素(pixel)为单位进行Shading的传统方式。三角形通过流水线及时移动。耗电以及浪费memory bandwidth(Early Visibility Test功能:为了使用这个功能,三角形要以序列的方式进入。因此,应在应用部分将三角形进行分类(sorting)。 Tile BasedRendering (TBR) 在Embedded中成本最高的是内存的读写。内存的读写与电量和memory bandwidth密切相关。所以在Embedded中最有效的优化方法之一是减少内存访问的次数。TDR度为了取代以前使用的将在IMR中的可见三角形挑选出来的Z-buffer(depth buffer)而研发的方法。将要渲染的画面分成许多tile,以tile为单位进行rasterization。(根据不同的系统情况,存在同时移动的tile。但是不是所有的三角形都能及时通过流水线进行移动。)(每一次划分tile的时候,硬件会创建包括各tile在内的有关Geometry列表的指针。使得各个tile在进行渲染的时候,都可以获取相关的Geometry buffer。)这样不使用z-buffer,改用tile进行处理的话,只使用在system-memory上的intermediate buffer 就可以解决了。 Tile BasedDeferred Rendering (TBDR) TDR的改良版本。在TDR里也可以对看不见的部分进行Shading或贴图(Texture Mapping)。在TBDR中,GPU里面通过分类找出三角形排列顺序,可以去掉不可见的部分)这个方法称为Hidden Surface […]