Categories
tutorials

Document size independent texture size control.

Summary.

This example presents, creates, and practices how the artists can control the texture size of the desired texture pass category regardless of the root document size of the Substance painter.

概括。
此示例展示、创建和练习美术师如何控制所需纹理通道类别的纹理大小,而不管 Substance 画家的根文档大小。

NEED VPN IF YOU LIVE IN MAINLAND OF CHINA

Categories
tutorials

AUTO-GENERATION SURFACE CHARACTERISTIC FILTER

summary.

This example is about developing a filter that automatically generates the Roughness and Metallic values of a surface using a list of COLOR IDs.

概括。

此示例是关于开发一个过滤器,该过滤器使用 COLOR ID 列表自动生成表面的粗糙度和金属值。

NEED VPN IF YOU LIVE IN MAINLAND OF CHINA

Categories
tutorials

WORLD SPACE NORMAL USAGE INSIDE SUBSTANCE DESIGNER

Preface.

A demonstration for learning about the concept that can actively utilize the information of various information textures baked.

前言。
学习可以积极利用烘焙的各种信息纹理的信息的概念的演示。

Categories
tutorials

How to enable two-sided rendering in Substance Designer?

如何在 Substance Designer 中启用两侧渲染?

How can I enable Two side rendering in Substance designer?

Yesterday I was asked a question by a colleague of mine I worked with before.

My old colleague was able to figure it out on his own.

Anyway, here are a few things to clear up.

If you’re not a student or a TA, is this really annoying?

Check out the reference links for learning.

昨天,我之前共事过的一位同事问了我一个问题。

我的老同事能够自己弄清楚。

无论如何,这里有一些事情需要澄清。

如果你不是学生或助教,这真的很烦人吗?

查看参考链接进行学习。

Shader API | Substance 3D Painter (adobe.com)

This is a link to the API documentation for writing shaders in Substance Painter.

In the documentation, you will find a State section.

这是在 Substance Painter 中编写着色器的 API 文档的链接。

在文档中,您会找到一个 State 部分,例如.

Let’s check inside the file.让我们检查一下文件内部。

Here is an example state for Backface culling.

The above API is the Substance Painter Shader API.

Now, check if you can refer to the above API document.

这是背面剔除的示例状态。

上面的 API 是 Substance Painter Shader API。

现在,检查您是否可以参考上述 API 文档。

C:\Program Files\Adobe\Adobe Substance 3D Designer\resources\view3d\shaders

There is a shader file in SD in the location.

SD defines shader properties and states in XML format.

This file is usually saved as a file called .glslfx.

Open the above shader location with Open Folder in Sublime Text and search for the cull_off state keyword.

该位置的SD中有一个着色器文件。

SD 以 XML 格式定义着色器属性和状态。

该文件通常保存为名为 .glslfx 的文件。

使用 Open Folder in Sublime Text 打开上述着色器位置,然后搜索 cull_off 状态关键字。

<?xml version="1.0" encoding="UTF-8"?>
<glslfx version="1.0.0" author="Adobe" label="Metallic Roughness">
    <!-- TECHNIQUES -->
    <technique name="Tessellation" label="Tesselation + Displacement">
        <!-- PROPERTIES -->
        <property name="blend_enabled"     value="true"/>
        <property name="blend_func"        value="src_alpha,one_minus_src_alpha"/>
        <property name="cull_face_enabled" value="true"/>
        <property name="cull_face_mode"    value="back"/>

        <!-- SHADERS -->
        <shader type="vertex"       filename="common/tessellation/vs.glsl" primitiveType="patch3"/>
        <shader type="tess_control" filename="common/tessellation/tcs.glsl"/>
        <shader type="tess_eval"    filename="common/tessellation/tes.glsl"/>
        <shader type="fragment"     filename="physically_metallic_roughness/fs.glsl"/>

        <!-- UNIFORMS -->
        <uniform name="parallax_mode"       guiName="Parallax Mode" min="1" max="1" />
        <uniform name="tessellationFactor"		guiGroup="Height"       guiName="Tessellation Factor"	default="4"   min="1" max="64" guiMin="1" guiMax="16" guiStep="1"   guiWidget="slider"/>
        <uniform name="scalarZeroValue"			guiGroup="Height"       guiName="Scalar Zero Value"		default="0.5" min="0" max="1"  guiMin="0" guiMax="1"  guiStep="0.1" guiWidget="slider"/>		

        <!-- PHONG TESSELLATION UNIFORMS -->
        <uniform name="usePhongTessellation"    guiGroup="Height"  guiName="Phong Tessellation"         default="false"      guiWidget="checkbox" />
        <uniform name="phongTessellationFactor" guiGroup="Height"  guiName="Phong Tessellation Factor"  default="0.6" min="0.0" max="1.0" guiMin="0.0" guiMax="1.0" guiStep="0.05" guiWidget="slider"/>
    </technique>
	
    <technique name="Parallax Occlusion" label="Parallax Occlusion">
        <!-- PROPERTIES -->
        <property name="blend_enabled"     value="true"/>
        <property name="blend_func"        value="src_alpha,one_minus_src_alpha"/>
        <property name="cull_face_enabled" value="true"/>
        <property name="cull_face_mode"    value="back"/>

        <!-- SHADERS -->
        <shader type="vertex"   filename="common/parallax/vs.glsl"/>
        <shader type="fragment" filename="physically_metallic_roughness/fs.glsl"/>

        <!-- UNIFORMS -->
        <uniform name="parallax_mode" guiName="Parallax Mode"         min="0" max="0" />
    </technique>

You will find this XML code block. Copy one original glsl fx file and rename it. I created another file with this name.

您将找到此 XML 代码块。 复制一个原始的 glsl fx 文件并重命名。 我用这个名字创建了另一个文件。

physically_metallic_roughness_TwoSide.glslfx

Then you need to change <glslfx version=”1.0.0″ author=”Adobe” label=”Metallic Roughness”> to <glslfx version=”1.0.0″ author=”Adobe” label=”Metallic Roughness TwoSide”> . This part is used as the name of the shader list in the UI.

Then change <property name=”cull_face_enabled” value=”true”/> to <property name=”cull_face_enabled” value=”false”/> .

然后您需要将 <glslfx version=”1.0.0″ author=”Adobe” label=”Metallic Roughness”> 更改为 <glslfx version=”1.0.0″ author=”Adobe” label=”Metallic Roughness TwoSide”> 。 这部分用作 UI 中着色器列表的名称。

然后将 <property name=”cull_face_enabled” value=”true”/> 更改为 <property name=”cull_face_enabled” value=”false”/> 。

<?xml version="1.0" encoding="UTF-8"?>
<glslfx version="1.0.0" author="Adobe" label="Metallic Roughness TwoSide">
    <!-- TECHNIQUES -->
    <technique name="Tessellation" label="Tesselation + Displacement">
        <!-- PROPERTIES -->
        <property name="blend_enabled"     value="true"/>
        <property name="blend_func"        value="src_alpha,one_minus_src_alpha"/>
        <property name="cull_face_enabled" value="false"/>
        <property name="cull_face_mode"    value="back"/>

        <!-- SHADERS -->
        <shader type="vertex"       filename="common/tessellation/vs.glsl" primitiveType="patch3"/>
        <shader type="tess_control" filename="common/tessellation/tcs.glsl"/>
        <shader type="tess_eval"    filename="common/tessellation/tes.glsl"/>
        <shader type="fragment"     filename="physically_metallic_roughness/fs.glsl"/>

        <!-- UNIFORMS -->
        <uniform name="parallax_mode"       guiName="Parallax Mode" min="1" max="1" />
        <uniform name="tessellationFactor"		guiGroup="Height"       guiName="Tessellation Factor"	default="4"   min="1" max="64" guiMin="1" guiMax="16" guiStep="1"   guiWidget="slider"/>
        <uniform name="scalarZeroValue"			guiGroup="Height"       guiName="Scalar Zero Value"		default="0.5" min="0" max="1"  guiMin="0" guiMax="1"  guiStep="0.1" guiWidget="slider"/>		

        <!-- PHONG TESSELLATION UNIFORMS -->
        <uniform name="usePhongTessellation"    guiGroup="Height"  guiName="Phong Tessellation"         default="false"      guiWidget="checkbox" />
        <uniform name="phongTessellationFactor" guiGroup="Height"  guiName="Phong Tessellation Factor"  default="0.6" min="0.0" max="1.0" guiMin="0.0" guiMax="1.0" guiStep="0.05" guiWidget="slider"/>
    </technique>
	
    <technique name="Parallax Occlusion" label="Parallax Occlusion">
        <!-- PROPERTIES -->
        <property name="blend_enabled"     value="true"/>
        <property name="blend_func"        value="src_alpha,one_minus_src_alpha"/>
        <property name="cull_face_enabled" value="false"/>
        <property name="cull_face_mode"    value="back"/>

        <!-- SHADERS -->
        <shader type="vertex"   filename="common/parallax/vs.glsl"/>
        <shader type="fragment" filename="physically_metallic_roughness/fs.glsl"/>

        <!-- UNIFORMS -->
        <uniform name="parallax_mode" guiName="Parallax Mode"         min="0" max="0" />
    </technique>	

If you turn off the Substance designer and rerun it, it will be applied as shown below.

In older versions, you could update a modified shader by pressing Crtl + R.

Lately, I’ve been applying auto-corrected shader compilation (It used to be really uncomfortable.)

如果您关闭 Substance 设计器并重新运行它,它将按如下所示应用。

在旧版本中,您可以通过按 Crtl + R 来更新修改后的着色器。

最近,我一直在应用自动更正的着色器编译(以前真的很不舒服。)

3.1.1.2 Properties
----------------
Allow to set up some part of the OpenGL state.

XML Element Definition:
	- Name: 'property'
	- Attributes:
		- 'name': The name of the property to set. The name are based on the OpenGL function or glEnum name:
			- enum:
				- without the 'GL_' prefix, in lower case.
				- Ex:
					glEnable(GL_BLEND_ENABLE) => "<property name="blend_enabled" value="true"/>"
					glDisable(GL_CULL_FACE) => "<property name="cull_face_enabled" value="false"/>"
			- functions:
				- without the 'gl' prefix, in lower case and with all words separated with '_' character.
				- Ex:
					glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) => "<property name="blend_func" value="src_alpha,one_minus_src_alpha"/>"
					'value': The value of the property
			- Allowed properties are:
				|-------------------|---------------------------|-------------------------------------------------------|
				| 'name' values		| 'value' values			| Description 											|
				|-------------------|---------------------------|-------------------------------------------------------|
				| blend_enabled		| boolean 					| Enable/disable the blending mode 						|
				| 					| true 						| 														|
				| 					| false 					| 														|
				|-------------------|---------------------------|-------------------------------------------------------|
				| blend_func		| string, string			| Set the sources and destination blending functions	|
				| 					| zero						| for OpenGL enum GL_ZERO								|
				| 					| one						| for OpenGL enum GL_ONE								|
				| 					| src_color					| for OpenGL enum GL_SRC_COLOR							|
				| 					| one_minus_src_color 		| for OpenGL enum GL_ONE_MINUS_SRC_COLOR				|
				| 					| dst_color					| for OpenGL enum GL_DST_COLOR							|
				| 					| one_minus_dst_color		| for OpenGL enum GL_ONE_MINUS_DST_COLOR				|
			 	| 					| src_alpha					| for OpenGL enum GL_SRC_ALPHA							|
			 	| 					| one_minus_src_alpha 		| for OpenGL enum GL_ONE_MINUS_SRC_ALPHA				|
				| 					| dst_alpha					| for OpenGL enum GL_DST_ALPHA							|
			 	|					| one_minus_dst_alpha		| for OpenGL enum GL_ONE_MINUS_DST_ALPHA				|
				| 					| constant_color			| for OpenGL enum GL_CONSTANT_COLOR						|
				| 					| one_minus_constant_color	| for OpenGL enum GL_ONE_MINUS_CONSTANT_COLOR			|
				| 					| constant_alpha			| for OpenGL enum GL_CONSTANT_ALPHA						|
			 	| 					| one_minus_constant_alpha	| for OpenGL enum GL_ONE_MINUS_CONSTANT_ALPHA			|
			 	| 					| src_alpha_saturate		| for OpenGL enum GL_SRC_ALPHA_SATURATE					|
			 	| 					| src1_color				| for OpenGL enum GL_SRC1_COLOR							|
				| 				 	| one_minus_src1_color		| for OpenGL enum GL_ONE_MINUS_SRC1_COLOR				|
				|					| src1_alpha				| for OpenGL enum GL_SRC1_ALPHA							|
				| 					| one_minus_src1_alpha		| for OpenGL enum GL_ONE_MINUS_SRC1_ALPHA				|
				|-------------------|---------------------------|-------------------------------------------------------|
				| blend_equation	| string					| Set the Blend Equation 								|
				| 					| func_add					| for OpenGL enum GL_FUNC_ADD							|
				| 					| func_subtract				| for OpenGL enum GL_FUNC_SUBTRACT						|
				| 					| func_reverse_subtract		| for OpenGL enum GL_FUNC_REVERSE_SUBTRACT				|
				| 					| min						| for OpenGL enum GL_MIN								|
				| 					| max						| for OpenGL enum GL_MAX								|
				|-------------------|---------------------------|-------------------------------------------------------|
				| cull_face_enabled	| boolean					| Enable/disable the face culling						|
			 	| 					| true						| 														|
				| 					| false						| 														|
				|-------------------|---------------------------|-------------------------------------------------------|
			 	| cull_face_mode	| string					| Set the face culling mode								|
				| 					| front						| for OpenGL enum GL_FRONT								|
				| 					| back						| for OpenGL enum GL_BACK								|
				| 					| front_and_back			| for OpenGL enum GL_FRONT_AND_BACK						|
				|-------------------|---------------------------|-------------------------------------------------------|
				| depth_test_enabled| boolean					| Enable/disable the depth test							|
			 	| 					| true						| 														|
				| 					| false						| 														|
				|-------------------|---------------------------|-------------------------------------------------------|
				| depth_func		| string					| Set the depth compare function						|
				|					| never						| for OpenGL enum GL_NEVER								|
				|					| less						| for OpenGL enum GL_LESS								|
				|					| lequal					| for OpenGL enum GL_LEQUAL								|
				|					| equal						| for OpenGL enum GL_EQUAL								|
				|					| notequal					| for OpenGL enum GL_NOTEQUAL							|
				|					| gequal					| for OpenGL enum GL_GEQUAL								|
				|					| greater					| for OpenGL enum GL_GREATER							|
				|					| always					| for OpenGL enum GL_ALWAYS								|
				|-------------------|---------------------------|-------------------------------------------------------|
    

If you look at the API Format normative book, you can see that it is bound as a property to use the gl function as it is.

To be precise, this would just mean turning off backface culling by removing Cull mode rather than Two Side vertex normal rendering.

Now that Backface Culling is applied, I apply a Two side normal sign to modify the rendering on the opposite side receiving the light to be rendered more correctly.

如果您查看 API 格式规范书,您可以看到它被绑定为一个属性,以按原样使用 gl 函数。

准确地说,这意味着通过移除剔除模式而不是两侧顶点法线渲染来关闭背面剔除。

现在应用了背面剔除,我应用了一个两侧法线符号来修改接收光的另一侧的渲染,以便更正确地渲染。

Navigate and modify the Shader path shown in the picture above. We will edit vs.glsl inside the tessellation folder.

导航并修改上图所示的着色器路径。 我们将在 tessellation 文件夹中编辑 vs.glsl。

/////////////////////////////// Vertex shader
#version 330

in vec4 iVS_Position;
in vec4 iVS_Normal;
in vec2 iVS_UV;
in vec4 iVS_Tangent;
in vec4 iVS_Binormal;

out vec4 oVS_Normal;
out vec2 oVS_UV;
out vec4 oVS_Tangent;
out vec4 oVS_Binormal;

uniform mat4 viewInverseMatrix;

void main()
{
    gl_Position = iVS_Position;
    oVS_Normal = iVS_Normal;
    vec4 viewDir = normalize(viewInverseMatrix[3] - gl_Position);
    float normalSign = sign(dot(oVS_Normal, viewDir));
    oVS_Normal *= normalSign;
    oVS_UV = iVS_UV;
    oVS_Tangent = iVS_Tangent;
    oVS_Binormal = iVS_Binormal;
}

Modifying like above code.

Rendering when only back face culling is changed to false. (There is no distinction between lighting directions)仅背面剔除更改为 false 时的渲染。 (光照方向没有区别)

Apply NormalSign to differentiate the lighting direction and darken it. I took a simple look.

应用 NormalSign 来区分照明方向并使其变暗。 我简单看了一眼。编辑于刚刚

Categories
tutorials

How I could be simulation Display p3 Color Gamut inside Game-Engine development mode.

Author : leejungpyo@corp.netease.com

First published this topic : 2021.5.10

What is this issues I was focused on now.

Purpose.

Basically Chinese game industry have a lot of old stuff of Dell monitor even now 2021 in years.

So many artist When they working there absolutely use to sRGB thigh color gamut space but modern display totally support DCI-P3 or Display P3 also even if manufacture from China or Taiwan such as AOC and Alpha Scan.

Current gamming monitor all support Wide gamut and new industrial standard wide gamut such as Rec2020 and Display P3.

Back to general.

All artist like lighting look dev artist use sRGB gamut and then building with final look will use to Commercial monitor How they can be matching to final rendering tone and manner?

If company could be change to all display to new stuff It is best one but do not

Notify about Color Gamut It’s hard to expect to do that.

So I got some idea about approximation based simulation inside unity scene view or game view like iOS development mode view that I defined calling name so.

iPhone : Display-P3Generally DCI-P3 and Display-P3 have the same chromatic coordinates – they have exactly the same gamut. They are different by gamma curve, the display P3 has one borrowed from sRGB profile, so when viewed on non-color-managed browser or system it gives better result (as for contrast) with still dull colors.All new Mac’s use Display-P3 as standard color space, as they displays cover almost 100% of its gamut.

Modern Android(Chinese manufactured such as Huawei and Oppo and etc made after 2020 years) : DCI-P3Refer : 使用广色域内容增强图形效果  |  Android 开发者  |  Android DevelopersMost of artist used sRGB monitor until now.

You can comparing iPhone 11 and your dell monitor about How much saturated feeling.

Art final look development solution.Idea phase.Color matrix emulator.

C# Script parts.

Matrix4x4 srgb2xyz = new Matrix4x4(
                new Vector4(0.4123908f, 0.2126390f, 0.0193308f, 0.0f),
                new Vector4(0.3575843f, 0.7151687f, 0.1191948f, 0.0f),
                new Vector4(0.1804808f, 0.0721923f, 0.9505322f, 0.0f),
                new Vector4(0.0f, 0.0f, 0.0f, 0.0f));

             Matrix4x4 xyz2p3 = new Matrix4x4(
                new Vector4(2.4934969f, -0.8294890f, 0.0358458f, 0.0f),
                new Vector4(-0.9313836f, 1.7626641f, -0.0761724f, 0.0f),
                new Vector4(-0.4027108f, 0.0236247f, 0.9568845f, 0.0f),
                new Vector4(0.0f, 0.0f, 0.0f, 0.0f));

            Matrix4x4 srg2p3_boundary_direction = new Matrix4x4(
                new Vector4(0.225f / 0.23f, -0.042f / 0.23f, -0.02f / 0.23f, 0.0f),
                new Vector4(-0.225f / 0.24f, 0.042f / 0.24f, -0.079f / 0.24f, 0.0f),
                new Vector4(0.0f, 0.0f, 0.1f / 0.098f, 0.0f),
                new Vector4(0.0f, 0.0f, 0.0f, 0.0f));

            Shader.SetGlobalMatrix("srgb2xyz", srgb2xyz);
            Shader.SetGlobalMatrix("xyz2p3", xyz2p3);
            Shader.SetGlobalMatrix("srg2p3_boundary_direction", srg2p3_boundary_direction);
            Shader.SetGlobalVector("enlarged_srgb_max_color", new Vector4(1.23f, 1.24f, 1.098f, 0.0f));

Shader Parts

#ifdef P3_COLOR_GUMAT
            // 1.225,   -0.042, -0.02
            // -0.225,  1.042, -0.079
            // 0,       0,      1.098            
            float4 min_rgb = float4(0,0,0,0);
            float4 raw_color = float4(output.xyz,0);
            float4 raw_srgb_max_color = clamp(raw_color, min_rgb,enlarged_srgb_max_color);
            float4 overflow = max(raw_srgb_max_color-float4(1,1,1,0),min_rgb);
            float4 adjusted_result = mul(srg2p3_boundary_direction, overflow)+saturate(raw_srgb_max_color);
            float4 xyz = mul(srgb2xyz, adjusted_result);
            output.rgb = mul(xyz2p3, xyz).rgb;
#endif

Aligned acknowledge

Congraturations Finally you can watching to simulated Display p3 simliar results by approximation my idea even if you still use to old Dell display monitor When you development of look dev stuff.

Categories
tutorials

(CN)Nintendo Switch game contents GPU Frame profiling.

在撰写本文之前,我想指出我是Nintendo Switch的真实用户。
请注意,本文仅涉及如何使用仿真器进行分析来分析GPU框架。

Nintendo Switch game 是一个页面,它汇总了使用 Frame debug 进行分析的方法

Summary

Emulator

  1. CEMU Emulator
  2. YUJU Emulator Early version.
  3. INTEL GPA GPU Analyzer.  RenderDoc
  4. 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

将其提取到所需的HDD。

CEMU HOOK FILE

https://files.sshnuke.net/cemuhook_1159_0573.zip

解压缩并将所有档案CEMU复制到可执行文件所在的目录。

CEMU GraphicPack

https://slashiee.github.io/cemu_graphic_packs/

解压缩并复制所有目录,并将其粘贴到 CEMU 可执行文件的目录中的 graphicPacks 目录中。

设置 ROMS .

The Legend of Zelda Breath of the Wild 将进行安装和驱动检查。
Profiling 下载要玩的 NDS 游戏的 ROM 文件。
最近,使用 MapleSeed2 很难下载 ROM。

https://github.com/FailedShack/USBHelperInstaller/releases/tag/1.2建议使用.
或者,也有使用淘宝的方法^^

安装最新版本时,使用 Internet 下载后安装的格式。
安装可能需要很长时间,但不要介意,首先安装它。

确定并运行游戏安装目录后,您可以使用下面的两个地址。

http://vault.titlekeys.ovh

当出现类似上述的窗口时,OK.可下载性会随区域位置而改变,如果可能的话JAPAN让我们设定为

下载速度在使用公司互联网时相当不错。

下载 Zelda breath of wide 时,您将自动收到三个数据。

下载完成解压缩。
在”下载完成”下,选择 Zelda 并右键单击鼠标,将显示解压缩菜单。

找到要解压缩的路径,总共有三个文件夹,如上图。(检查正常解压缩)
在这里,USB Helper 的工作已完成。

如何驱动 CEMU 中的游戏。
转到 General Settings/Graphics 。

将 Graphics API 更改为 Vulkan ,将 VSync 更改为 Triple buffering ,将 Upscale filter 更改为 Nearest Neighbor 。
(如果您的计算机性能良好,请设置为 Bicubic )

添加或修改 MLC path 和 Game Paths 。
MLC 表示虚构的任天堂 Switch 内置存储库,而 Game Paths 表示游戏的第一个内容被下载。

将 Audio 中的电视音量更改为 100 。

  1. Game Installation step。
    C:\ROMS\NDS_Roms\The Legend of Zelda Breath of the Wild [ALZP01]\code 中的 U-King.rpx 从 Cemu 导入 Road 菜单。
    加载完成后,将显示一个菜单,需要更新。
  2.  C:\ROMS\NDS_Roms\The Legend of Zelda Breath of the Wild (UPDATE DATA) (v208) (3.253 GB) (EUR) (unpacked)\meta 目录中的 meta.xml 进一步更新。此时,将使用 Update or installation DLC menu ,而不是 Load menu 。
  3. C:\ROMS\NDS_Roms\The Legend of Zelda Breath of the Wild (DLC) (2.297 GB) (EUR) (unpacked)\meta 的 meta.xml。

正常的 DLC 安装已完成。

更改 Graphic 设置。

只选择所需的元素进行激活。
特别是,如果您的显卡是 NVIDIA,请仅激活与 NVIDIA 相关的图形卡。

运行和确认。

工作正常已确认。

现在,让我们将它设置为最佳选项,并分析着色器 hooking 和 Render pass,如 Intel GPA 等。

让我们试试Frame Debug。
工具。
https://renderdoc.org/stable/1.10/RenderDoc_1.10_64.msi
使用 RenderDoc。
从 Intel GAP 到 Vulkan 时出错,OpenGL 未 Frame Capture。
安装 RenderDoc 后,将 Launch Application 路径设置为 Cemu.exe 并运行。

如果运行正常,则 OpenGL 如上图。F12,PrtCrn to capture 将看到一条信息。
在所需的场景中,按 Print Screen 键将其关闭。

如果它正常成为”搜索”,则会出现上述图示器 Capture Progress 菜单栏。

截图完成了。
由于 Vulkan API 尚未正常运行,因此 Cemu Graphics API 应更改为 OpenGL 并捕获。

如何提高图形质量。

How to setup Zellda Botw and Cemu with Reshade and raytracing

ReShade https://reshade.me/

End of contents.

Categories
tutorials

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

Course Organizers
Stephen 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
Bati IOGS
Iliyan Georgiev
Autodesk

Course Description

基于物理的着色改变了我们处理制作渲染的方式,并在此过程中简化了艺术家的生活。符合物理原理的着色模型可轻松创建高质量、逼真的材质,在不同的照明环境中保持其特性。
相比之下,传统的临时着色模型需要广泛的调整,以获得类似的结果,由于不太直观的行为或不必要的复杂性,很难在各种照明下保持相同的结果。
因此,基于物理的照明(着色)模型在电影和游戏制作中被广泛采用,特别是因为它不再难以实现或评估。基于物理的着色直到今天才完全解决,因此本课程的目的是分享最新的理论和生产经验。
难度:中级

Intended Audience 目标听众

视频游戏、CG 动画和 VFX 领域的从业者,以及对着色模型感兴趣的研究人员。

Prerequisites 先决条件

了解着色模型及其在电影或游戏制作中的使用。

Course Website

所有课程材料都可以在这里找到。.https://blog.selfshadow.com/publications/s2020-shading-course/

Organizers 主办单位

Stephen Hill 是 Lucasfilm Advanced Development Group 的高级渲染工程师,从事基于物理的渲染 R&d,用于 Carne y Arena 和最近 Mandalorian 等产品。
他以前在育碧蒙特利尔担任 3D 技术主管,为各种游戏产品开发做出了贡献,如 Assassin 的创意 Unity 以及 Splinter Cell。
Stephen McAuley 于 2006 年在 Bizarre Creations 开始开发视频游戏,2011 年迁至育碧,领导了 Far Cry 品牌的图形推广。
2020 年,他加入索尼圣塔 Monica 担任高级渲染工程师。
他专注于基于物理的照明和阴影、数据驱动的渲染架构以及整体视觉质量的改进。
他还热衷于与整个行业分享他的知识,并运营内部和外部培训和会议。

Presentation Schedule

08:30–09:00 Fresnel 术语的几点思考(霍曼)
09:00–09:20 精确的 Fresnel 模型,用于实时渲染。
使用经验分解 (Belcour)
09:20–09:40 MaterialX 基于物理的着色节点 (Stone and Harrysson)
09:40–10:00 碎片收集:基于物理(相同)的材料配置方法 (Kerley)
10:00–10:20 虚幻引擎的物理和可扩展氛围(Hillaire)
10:20–11:00 Ghost of Tsushima 的武士着色
11:00–11:30 Let’s Get Physical : MPC 中毛茸茸着色表达的历史 (Pieke, Skliar and Earl) 11:30–12:00 Q & A

Abstracts

Some Thoughts on the Fresnel Term 프레 넬 용어에 대한 몇 가지 생각

菲涅尔术语似乎是微面粗糙着色模型最理解的部分。
如果计算成本高昂,则可以使用原始方程或近似值(通常为 Schlick)。
但是,在演讲中,我们将表明,一切都不同于我们看起来,甚至菲涅尔术语也可能有一些惊喜。
基于我们之前在 2019 年欧洲图形工作商店中对材料应用模型 [Hof19] 的演示,我们扩展至更全面的概述。

Naty Hoffman 他是 Lucasfilm 高级开发集团的高级工程师和架构师。

在此之前,他曾于 2K 担任技术副总裁,此前曾在 Activision(执行包括《呼叫到杜蒂》系列在内的各种标题的图形 R&D)、SCE Santa Monica Studio(《战争之三》中的编码图形技术)和 Naughty 工作。Dog(PS3 第一个库开发)、Westwood Studios(在 Earth 和 Beyond 上领先的图形开发)和英特尔(支持 Pentium 管道修改和拒绝 SSE/SSE2 指令集)。

An Accurate Fresnel Model for Real-Time Rendering

使用经验分解进行实时渲染的精确菲涅尔模型。
使用经验分解
Laurent Belcour, Megane Bati 和 Pascal Barla
实时渲染引擎与离线渲染器一起,在视觉效果制作中寻找越来越多的角色。
但是,要有效地工作,着色模型在渲染器之间保持一致非常重要。
遗憾的是,实时渲染器和离线渲染器收敛到一组常见的微面粗糙度着色模型,但 Fresnel 反射的处理方式各不相同,这可能会导致明显的视觉不匹配。
offliine 渲染器可以调整以使用精确的 Fresnel 方程,通常使用 Gulbrandsen 的参数化 [Gul14]。另一方面,实时引擎通常使用 Schlick 的近似模型 [Sch94]。原因是评估成本低,各种着色操作中使用的预合成术语可以更有效地表。
因此,Schlick 的 Fresnel 应用是目前实时渲染的尖端技术。
本讲座将介绍新的 Fresnel 应用,该应用已针对实时渲染进行了调整。
它基于可能的 Fresnel 曲线空间的经验分解,并生成与 Ground Truth 的近距离匹配。重要的是,它仍然与前面提到的实时渲染引擎的预计算方法兼容。
此外,还引入 Gulbrandsen 的替代参数化,该参数直接构建在新的近面上,为控制 grazing angle 变化的边缘色调参数提供视觉上均匀的更改。

Laurent Belcour 是 Unity Technologies 的研究科学家,专注于实时和离线渲染。在 Cyril Soler 和 Nicolas Holzschuch 的监督下,他在格勒诺布尔大学获得了理论光传输博士学位。从那时起,他的研究兴趣扩展到材料建模和蒙特-卡洛集成。

Megane Bati’自 2018 年 9 月起在法国波尔多的 LP2N 担任博士生,由罗曼·帕诺卡西和帕斯卡尔·巴拉监督。她对”材料外观建模”(material appearance modeling)感兴趣,尤其是”多层材料”(Layered material) 的”逆向工程”(Reverse engineering)。

Pascal Barla 于 2006 年获得 INP Grenoble(法国)代表呈现主题的博士学位。

2007年,他被Inria Bordeaux Sud Ouest聘为永久研究员后,他的研究扩展到了对光学和感知都感兴趣的更普遍的视觉外向领域。

MaterialX Physically Based Shading Nodes

在2016年,Lucasfilm和Autodesk开始协作开发一套基于物理的MaterialX着色节点,以及将节点图形转换为可渲染的着色代码的框架,这些功能在2019年集成到MaterialX项目中。
演示如何使用MaterialX基于物理的着色节点配置分层的面向艺术家的着色模型,如Autodesk Standard Surface和Usd PreviewSurface。我们将学习使用基于物理的着色器图形,将其转换为语言(如OSL和GLSL)的可渲染着色器的技术方面。
本演讲的课程说明详细介绍了如何在实时渲染和产品级渲染背景下实现作为此库一部分的各种BRDF和着色器构建块。

Jonathan Stone 是 Lucasfilm 高级开发集团的高级软件工程师和 MaterialX 的高级开发人员。

自 2010 年以来,他一直在设计 Lucasfilm 的实时渲染和外观开发技术,以进行生产工作,包括 Mandalorian、Star Wars: e Force Awakens 和 Pacic Rim。以前,我领导了 Double Fine Productions 的图形开发,̈为 Brutal Legend 和 Psychonauts 设计了渲染引擎。

Niklas Harrysson 是 Autodesk 的高级软件工程师。在过去的十年中,他的工作一直专注于 Autodesk M&E 产品的渲染、着色和照明。在加入 Autodesk 之前,他在 Illuminate Labs 工作 8 年,开发光线跟踪和照明仿真软件。他当前的项目侧重于 MaterialX,尤其是基于物理的着色器配置和代码生成。

Iliyan Georgiev 是 Autodesk 的研究员和高级软件工程师。他拥有德国萨兰大学博士学位,并荣获欧洲数学博士奖。他的研究主要集中在蒙特卡洛物理光传输模拟方法上。Iliyan 经常在一流的科学期刊和会议上发表,他的工作已集成到各种制作渲染系统中。

Putting the Pieces Together: A Physically(ish) Based Approach

实际单位、基于物理的照明和着色模型只是解决方案的一部分。本讲座将介绍这些元素如何提供给索尼图片图像艺术家的工具和想法,以了解如何创建基于物理(有时是非物理)制作图像。
将讨论在Katana内部构建的强大、动态的程序纹理系统。
与类似的动态参数混合(基础材料配置系统),小艺术家团队可以编写和重复使用各种材料,并在不断缩小的制作时间线上工作。
我们还将讨论这种可扩展系统的潜在陷阱。

Lee Kerley 是索尼图片图像公司的着色主管,在着色团队中工作了 12 年多。他专注于工作室在外观开发、照明、阴影和渲染方面的方法。最近,我们为生产环境中的用户配置了材质创作工具和动态材质。在 Imageworks 中,他为各种电影做出了贡献,如 Spider-Man 3, The Amazing Spider-Man 和Spider-Man : Into the Spider-Verse等等。

Physically Based and Scalable Atmospheres in Unreal Engine

虚幻引擎的物理基础和可扩展的待机效果

Sebastien Hillaire
渲染行星大气需要模拟分子、尘埃和云干扰介质等组件中的光散射和阴影。
渲染所有这些复杂交互,尤其是多散射(多散射)是一项挑战。如果您需要从 PC 扩展到移动设备,同时确保适用的性能和质量,则尤其如此。
此外,以前的方法还受到以下限制的影响:只能表示单个等待类型。当等待属性更改时,需要计算成本高昂的查找表 (LUT) 更新。在某些情况下,也有视觉人工。
我们提出了一种基于物理的新方法,支持从地面到宇宙的View Rendering、动态更新的大气属性和非重复光多散射仿真,所有这些仿真都可以从高端PC扩展到移动硬件。
对该方法的准确性进行了评估,并提出了如何将其与地面路径跟踪结果进行比较。
在这方面,我们还介绍云渲染和最新技术的一些改进。

Sebastien Hillaire 是 Epic Games 的高级渲染工程师,专注于虚幻引擎渲染器。

他在许多方面提高了视觉质量和性能,如基于物理的阴影、体积模拟和渲染以及视觉效果。

在加入 Epic Games 之前,他曾于 Dynamixyz 工作,后来在 Criterion Games 和 Electronic Arts 的 Frostbite 开发团队工作。

Samurai Shading in Ghost of Tsushima

Jasmin Patry
이 강연에서는 Infamous : First Light가 출시 된 이후 Sucker Punch에서 수행 한 물리적 기반 셰이딩 연구에 대해 설명합니Ghost of Tsushima 的武士着色
本次讲座将介绍自《Infamous:First Light》发布以来,Sucker Punch 进行的基于物理的着色研究。
这部作品被用于开发PlayStation 4游戏《开放世界动作冒险》,以13世纪封建时代的日本为背景。
首先,我们将讨论一种由 Heitz 等人的 SGGX Microake Distribution 启发的可向性反射材质表示形式。[Hei + 15]。这允许对从单个压缩纹理到空间不同方向的各向同性 GGX 粗糙度进行编码,以支持硬件过滤和间隙映射。它还显示如何使用 SGGX 表示预过滤法线贴图和双向同性粗糙度贴图。这允许在各种比例下保持各向同同性正态分布的外观,而无需额外的运行时成本。
然后提出了一种新的实时突起散射模型,可以再现粉碎天鹅绒等材料的外向性形状。它还描述此 BRDF 的简化版本(由 Eric Wohllaib 开发,用于延迟渲染器),适用于表示毛毡和苔藓覆盖的岩石等材质。
接下来,我们介绍了由 Penner 和 Bor-shukov [PB11] 所熟知的预集成 Skin Shading 技术,该技术通过使用网格曲率张张器(网格曲率张张子)得到了改进。它还强调了在计算守时照明和球面谐波的查找表时使用正确集成方法的重要性。
最后,在未包含在录制讲座中的其他幻灯片中,我们提出了一种以低频和高频编写基于物理材料的新方法。我们开发的方法保留了传统”细节映射”的想法,使艺术家能够直观地在基于物理的可平铺材料上编写大型变体,同时最大限度地减少实时内存和着色器开销。

Jasmin Patry 是 Sucker Punch Productions 的高级渲染工程师,他曾与 Infamous 2、Infamous Second Son、Infamous First Light 和 Tsushima Ghost 合作。在此之前,他曾参与 Radical Entertainment,并贡献了 Hulk、Scarface 和 Prototype 的头衔。作为滑铁卢大学计算机图形学研究所的研究生,他创建了广受欢迎的Linux游戏Tux Racer,该游戏被PC杂志选为”最佳免费软件”,下载量达到数百万次。他感兴趣的领域包括基于物理的渲染、科学计算、性能优化,以及让游戏看起来就像啤酒一样,运行速度更快。

Let’s Get Physical: The Hairy History of Shading at MPC

MPC中毛茸茸的着色表达的历史

Rob Pieke, Igor Skliar 和 Will Earl

在过去的15年中,MPC一直在追求一种在着色和渲染上越来越物理激励和有根据的方法。旅程基于可用的计算能力、艺术家谈论阴影和互动的方式,以及学术界和业界其他地方发展的方式,不断重新评估了务实的决策。
2000年代初,MPC已经使用基于图像的照明,使CG内容自然融入电影内容。
当环境地图被分解成一系列远距照明,用来照亮复杂的镜头(例如2007年的纳尼亚编年史:卡斯皮王子里面的巨型面纱镜头)时,它转化成了照明艺术家角色所需的数据兰格勒。管理数千个阴影路径和贴图。
在物理物理中,几乎或根本没有接地的自定义表面着色器需要大量投入场景的特定外观(Look-dev)开发,不仅个别资产是分开的,而且与相邻资产有关,提供可靠的感觉。变得更加复杂。

我们减少工作量的第一个努力是引入基于 Ashikhmin 和 Shirley [AS00] 工作的表面着色,并寻求基于 Neumann 等任务的”albedo pump-up”来补充来保存能量的材料。[NNS99]。2010 年首次用于 Titans 的重要采样材料(例如,当表面粗糙度驱动反射/交合射线数量时)的内部框架得到了补充。为了降低间接接触着色成本,我们首先在点云中直接照明,并使用 Pixar 提供的工具计算具有间接照明的砖块图进行跟踪。
当此操作尚未完成时,Pixar 在 RenderMan 中为物理上合理的着色器推出了一个框架,并切换到使用它。我们接受光线跟踪的趋势仍在继续,并开始从定制材料转向更通用的材料。2015 年左右,随着 RENderMan 推出 RIS 路径跟踪框架,这一趋势激增。这是阴影贴图、点云和砖块贴图的缺点,现在它直接或间接地跟踪所有照明。最初,我们将着色器库移植到新的 RIS API 中,但此后,我们主要迁移到使用 Pixar 提供的着色器。我们重新讨论艺术家的经验,节能是否重要,以及如何表达分层材料。
近年来,MPC 最初为 Lion King 和 Maleficent 2 在头发和毛皮着色方面进行了大量投资,但此后一直持续着所有毛皮工作。
受真实头发的物理特性的启发,我们停止了从外部外壳中提取颜色,而是从核心内部的体积散射中提取颜色。”免费”不仅能产生视觉上令人满意的结果,如不饱和尖端,而且可以科学地测量不同物种皮毛在现实生活中的光学特性。
当然,即使今天我们的大多数艺术家都提出了一个实际挑战,他们不是科学家,但什么是视觉结果,增加或减少参数,如”黑色素浓度”,并不直观。
此外,如果生成的形状主要来自间接照明或体积照明效果,则很难预测最终结果。为此,我们与艺术家密切合作,了解语言与物理相匹配的部分(例如,”此材料的 IOR 为 1.6″)和未包含的部分(例如,”毛应为棕色”)。对于后,我们努力在着色计算中尽可能物理驱动,但提供将艺术意图映射到物理参数的用户体验。例如,您可以为纹理艺术家提供他们熟悉的色板选择工具(包括基于黑色素浓度的颜色),该工具最终将吸收系数值应用于着色器中的贴图。
展望未来,我们将继续推动在着色和渲染中更精确(或至少是物理激励)效果。我们继续内部讨论分层材质,增加参数混合的优缺点(技术、艺术等),以及向现有的 BxDF 添加更多的长笛等讨论,会影响我们对于各种 BxDF 的其他讨论(例如,玻璃和/或布料是否具有定制材料?
最后,随着我们对材料越来越信任,我们越来越关注照亮世界,以及如何描述消耗这些照明的相机和传感器。

Rob Pieke 是 MPC Film 的主要设计师。

他从小就在PCjr的BASIC从事计算机图形编程,完全被在电影院里观看Jurassic Park的视觉效果行业所吸引。

Rob 毕业于滑铁卢大学计算机科学专业,在 C.O.R.E. 领导了一支小型 VFX 研发团队。在搬到伦敦加入多伦多数字图片公司,Narnia:王子·卡普里安的MPC之前,他开发出一系列用于好莱坞大片的技术,从哈里·博特系列到银河卫士,最近还有《狮子王》。

作为对渲染的特殊扭曲,Rob 总是对新技术的使用和滥用感兴趣,并关心视觉效果行业的”下一代大”是什么。他最近加入SideFX,担任高级软件开发人员。

Igor Skliar 是 MPC Film 的高级着色器作家。

毕业于美术学院(美术专业)和国家电子技术学院,他结合数学、物理和四大艺术的兴趣,努力打造CG产业的巢材料。Igor 非常关注实际生产中的渲染技术和 PBR,并开发和支持着色器的演变,以便在物理上更加有效并节省能源。加入 MPC 后,Aer 成为项目的主要着色器作者,如 e Lion King(引入新的毛皮 BxDF)、Malecent:Evil Mistress of Evil(通过扩展 BxDF 高效执行羽毛工作)。,刀片亚军2049,空角机动队,乘客和其他许多。

Will Earl 是 MPC Film 的优化主管,负责提高资产开发和生产渲染的效率。

他在 MPC Film 担任照明和外观开发主管多年,最近在 Pokemon Detective Pikachu ́ 和 Sonic e Hedgehog 工作。在此之前,他曾在Aardman Animations担任Shot Technical Director,并在Weta Digital上作为King Kong的Modeller开始视觉效果。

References

[AS00] M. Ashikhmin and P. Shirley. “An Anisotropic Phong BRDF Model”. In: Journal of Graphics Tools 5.2
(2000),
pp. 25–32.
[Gul14] O. Gulbrandsen. “Artist Friendly Metallic Fresnel”. In: Journal of Computer Graphics Techniques (JCGT)
3.4 (Dec. 2014). url: http://jcgt.org/published/0003/04/03/
[Hei+15] E. Heitz, J. Dupuy, C. Crassin, and C. Dachsbacher. “The SGGX Microake Distribution”. In: ACM Trans.
Graph. 34.4 (July 2015).
[Hof19] N. Hoffman. “Fresnel Equations Considered Harmful”. In: Workshop on Material Appearance Modeling.
Ed. by R. Klein and H. Rushmeier. The Eurographics Association, 2019.
[NNS99] L. Neumann, A. Neumann, and L. Szirmay-Kalos. “Reectance Models by Pumping up the Albedo Function”. In: Machine Graphics and Vision. 1999, pp. 3–18.
[PB11] E. Penner and G. Borshukov. “Pre-Integrated Skin Shading”. In: GPU Pro 2. A K Peters, 2011, pp. 41–55.
[Sch94] C. Schlick. “An Inexpensive BRDF Model for Physically-based Rendering”. In: Computer Graphics Forum
13.3 (Aug. 1994), pp. 233–246.

Categories
tutorials

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

Course Organizers
Stephen 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
Bati IOGS
Iliyan Georgiev
Autodesk

Course Description

물리적 기반 셰이딩은 우리가 프로덕션 렌더링에 접근하는 방식을 변화 시켰고 그 과정에서 아티스트의 삶을 단순화했습니다. 물리적 원리를 준수하는 음영 모델을 사용하면 다양한 조명 환경에서 특성을 유지하는 고품질의 사실적인 재질을 쉽게 만들 수 있습니다. 대조적으로, 기존의 임시 셰이딩 모델은 덜 직관적인 동작이나 불필요한 복잡성으로 인해 유사한 결과를 얻기 위해 광범위한 조정이 필요했으며 다양한 조명 아래에서 동일한 결과를 유지 하기 어려웠다.결과적으로 물리적 기반 조명(셰이딩)모델은 특히 구현하거나 평가하기가 더 이상 어렵지 않기 때문에 영화 및 게임 제작에 널리 채택되었습니다. 물리 기반 셰이딩은 오늘날까지 완전히 해결 된 문제가 아니므로 이 과정의 목적은 최신 이론과 생산 교훈을 공유하는 것입니다.
난이도 : 중급

Intended Audience 目标听众

비디오 게임, CG 애니메이션 및 VFX 분야의 실무자 및 셰이딩 모델에 관심이있는 연구원.

Prerequisites 先决条件셰이딩 모델 및 영화 또는 게임 제작에서의 사용에 대한 이해.

Course Website 모든 과정 자료는 여기에서 찾을 수 있습니다.https://blog.selfshadow.com/publications/s2020-shading-course/

Organizers 主办单位

Stephen Hill은 Lucasfilm의 Advanced Development Group의 수석 렌더링 엔지니어로 Carne y Arena 및 최근에는 Mandalorian과 같은 제품을 위한 물리적 기반 렌더링 R & D에 종사하고 있습니다.
그는 이전에 Ubi-soft Montreal에서 3D 기술 책임자로 일했으며 Assassin’s Creed Unity뿐만 아니라 Splinter Cell과 같은 다양한 게임 제품 개발에 기여했습니다.
Stephen McAuley는 2006 년 Bizarre Creations에서 비디오 게임 개발을 시작한 후 2011 년 Ubisoft로 옮겨 Far Cry 브랜드의 그래픽 촉진을 주도했습니다.
2020 년에 그는 수석 렌더링 엔지니어로 Sony Santa Monica에 합류했습니다.그는 물리적 기반 조명 및 음영, 데이터 기반 렌더링 아키텍처 및 전반적인 시각적 품질 개선에 중점을 둡니다.그는 또한 자신의 지식을 업계 전체와 공유하고 내부 및 외부 교육 및 컨퍼런스를 운영하는 데 열정적입니다.

Abstracts

Some Thoughts on the Fresnel Term 프레 넬 용어에 대한 몇 가지 생각

Naty Homan 프레넬 용어는 미세면 거칠기 셰이딩 모델에서 가장 잘 이해되는 부분인것처럼 보입니다. 계산 비용이 많이 드는 경우 원래 방정식이나 근사값 (일반적으로 Schlick)을 사용할 수 있습니다. 그러나이 강연에서 우리는 모든것이 보이는 것과 다르며 프레넬 용어조차도 약간의 놀라움을 가질 수 있음을 보여줄 것입니다.2019 Eurographics Workshop on Material Appearance Modeling [Hof19]의 이전 프레젠테이션을 기반으로하여보다 포괄적 인 개요로 확장되었습니다.

Naty Hoffman 그는 Lucasfilm Advanced Development Group의 수석 엔지니어 겸 설계자입니다. 이전에는 2K에서 기술 부사장을 역임했으며 그 전에는 Activision (Call of Duty 시리즈를 포함한 다양한 타이틀에 대한 그래픽 R & D 수행), SCE Santa Monica Studio (God of War III의 코딩 그래픽 기술), Naughty에서 근무했습니다. Dog (PS3 최초 라이브러리 개발), Westwood Studios (Earth and Beyond에서 선도적 인 그래픽 개발) 및 Intel (Pentium 파이프 라인 수정 추진 및 SSE / SSE2 명령 세트 거부 지원).

An Accurate Fresnel Model for Real-Time Rendering 경험적 분해를 사용한 실시간 렌더링을 위한 정확한 프레넬 모델.

경험적 분해 사용Laurent Belcour, Megane Bati 및 Pascal Barla실시간 렌더링 엔진은 오프라인 렌더러와 함께 시각 효과 제작에서 점점 더 많은 역할을 찾고 있습니다.그러나 이것이 효과적으로 작동하려면 셰이딩 모델이 렌더러간에 일관성을 유지하는 것이 중요합니다.안타깝게도 실시간 및 오프라인 렌더러는 일반적인 미세면 거칠기 셰이딩 모델 세트로 수렴되었지만 Fresnel 반사에 대한 처리 방식은 다양하므로 눈에 띄는 시각적 불일치가 발생할 수 있습니다. offliine 렌더러는 정확한 Fresnel 방정식을 사용하도록 조정할 수 있으며 일반적으로 Gulbrandsen의 매개 변수화 [Gul14]를 사용합니다. 반면에 실시간 엔진은 일반적으로 Schlick의 근사 모델 [Sch94]을 사용합니다. 그 이유는 평가 비용이 낮고 다양한 셰이딩 작업에서 사용되는 사전 합성 된 용어를 보다 효율적으로 표로 만들 수 있기 때문입니다.따라서 Schlick의 Fresnel approximation는 현재 실시간 렌더링을 위한 최첨단 기술입니다.이 강연에서는 실시간 렌더링에 맞게 조정 된 새로운 Fresnel approximation 에 대해 설명합니다. 가능한 Fresnel 곡선 공간의 경험적 분해를 기반으로 하며 Ground Truth와 가까운 일치를 생성합니다. 중요한 것은 앞서 언급 한 실시간 렌더링 엔진의 사전 계산 방법론과 여전히 호환된다는 것입니다. 또한 새로운 근사법 위에 직접 구축 된 Gulbrandsen의 대체 매개 변수화를 도입하여 grazing angle 변화를 제어하는 ​​가장자리 색조 매개 변수에 시각적으로 균일 한 변화를 제공합니다.

Laurent Belcour는 실시간 및 오프라인 렌더링에 중점을 둔 Unity Technologies의 연구 과학자입니다. 그는 Cyril Soler와 Nicolas Holzschuch의 감독하에 그르노블 대학교에서 이론적 빛 전송(Light Transport as ray tracing)에 대한 박사 학위를 취득했습니다. 그 이후로 그의 연구 관심사는 재료 모델링 및 Monte-Carlo 통합으로 확장되었습니다.Megane Bati ‘는 2018 년 9 월부터 프랑스 보르도의 LP2N에서 Romain Pacanowski와 Pascal Barla의 감독하에 박사 과정을 밟고 있습니다. 그녀는 재료 외형 모델링(material appearance modeling), 특히 다층 재질(Layered material) 의 역설계(Reverse engineering)에 관심이 있습니다.Pascal Barla는 2006 년 INP Grenoble (프랑스)에서 표현 렌더링 주제로 박사 학위를 받았습니다. 2007 년 Inria Bordeaux Sud Ouest에서 영구 연구원으로 채용 된 후, 그의 연구는 광학과 지각 모두에 관심이있는보다 일반적인 시각적 외양 영역으로 확장되었습니다.

MaterialX Physically Based Shading Nodes

Jonathan Stone, Niklas Harrysson 및 Iliyan Georgiev2016 년에 Lucasfilm과 Autodesk는 노드 그래프를 렌더링 가능한 셰이딩 코드로 변환하기위한 프레임 워크와 함께 MaterialX 용 물리적 기반 셰이딩 노드의 표준 세트를 개발하기위한 공동 작업을 시작했으며 이러한 기능은 2019 년에 MaterialX 프로젝트에 통합되었습니다. MaterialX 물리적 기반 셰이딩 노드를 사용하여 Autodesk Standard Surface 및 Usd PreviewSurface와 같은 계층화 된 아티스트 지향 셰이딩 모델을 구성하는 방법을 보여주며, 물리적 기반 셰이딩 그래프를 사용하여 OSL 및 GLSL 과 같은 언어로 렌더링 가능한 셰이더로 변환하는 기술적 인 측면에 대해 알아볼 것입니다. 이 강연의 과정 노트에서는 실시간 렌더링 및 프로덕션 렌더링 맥락에서 이 라이브러리의 일부인 다양한 BRDF 및 셰이더 빌딩 블록을 구현하는 방법을 자세히 설명합니다.

Jonathan Stone은 Lucasfilm Advanced Development Group의 선임 소프트웨어 엔지니어이자 MaterialX의 수석 개발자입니다. 그는 2010 년부터 Lucasfilm의 실시간 렌더링 및 룩 ​​개발 기술을 설계하여 The Mandalorian, Star Wars : e Force Awakens 및 Pacic Rim을 비롯한 프로덕션 작업을 진행하고 있습니다. 이전에 저는 Double Fine Productions에서 그래픽 개발을 이끌 었으며 Brutal Legend ¨ 및 Psychonauts를위한 렌더링 엔진을 설계했습니다.Niklas Harrysson은 Autodesk에서 근무하는 수석 소프트웨어 엔지니어입니다. 지난 10 년 동안 그의 작업은 Autodesk M & E 제품의 렌더링, 음영 및 조명에 중점을 두었습니다. Autodesk에 입사하기 전에는 Illuminate Labs에서 8 년 동안 일하면서 광선 추적 및 조명 시뮬레이션 소프트웨어를 개발했습니다. 그의 현재 프로젝트는 MaterialX, 특히 물리적 기반 셰이더 구성 및 코드 생성에 중점을 둡니다.Iliyan Georgiev는 Autodesk의 연구원이자 수석 소프트웨어 엔지니어입니다. 그는 독일 자를란 트 대학교에서 박사 학위를 취득하여 Eurographics PhD esis Award를 수상했습니다. 그의 연구는 주로 물리적 기반 광 전송 시뮬레이션을위한 Monte Carlo 방법에 초점을 맞추고 있습니다. Iliyan은 일류 과학 저널 및 컨퍼런스에서 정기적으로 출판하며 그의 작업은 다양한 프로덕션 렌더링 시스템에 통합되었습니다.

Putting the Pieces Together: A Physically(ish) Based Approach

Lee Kerley 실제 단위, 물리적 기반 조명 및 음영 모델은 솔루션의 일부일뿐입니다. 이 강연에서는 이러한 요소가 Sony Pictures Imageworks의 아티스트에게 제공되는 방법에 대한 도구와 아이디어를 검토하여 물리적 기반 (때로는 비 물리적 기반) 프로덕션 이미지를 제작할 수 있는 방안을 다룹니다.Katana 내부에 구축 된 강력하고 역동적 인 절차 적 텍스처링 시스템에 대해 논의 할 것입니다. 유사한 동적 매개 변수 블렌딩 (기반 재료 구성 시스템)과 함께 소규모 아티스트 팀이 다양한 재료를 작성하고 재사용 할 수 있으며 지속적으로 축소되는 제작 타임 라인에서 작업 할 수 있습니다. 또한 그러한 확장 가능한 시스템의 잠재적인 함정에 대해서도 다룰 것입니다.

Lee Kerley는 Sony Pictures Imageworks의 셰이딩 책임자로 12 년 넘게 셰이딩 팀의 일원으로 일했습니다. 그는 스튜디오가 룩 개발, 조명, 음영 및 렌더링에 대한 접근 방식에 중점을 둡니다. 가장 최근에는 프로덕션 환경에서 사용자를 대상으로하는 머티리얼 저작 도구 및 동적 머티리얼 구성 작업을 해왔습니다. Imageworks에서 그는 Spider-Man 3, The Amazing Spider-Man 및 Spider-Man : Into the Spider-Verse와 같은 다양한 영화에 기여했습니다.

Physically Based and Scalable Atmospheres in Unreal Engine

Sebastien Hillaire
행성의 대기를 렌더링하려면 분자, 먼지 및 구름 간섭 매체와 같은 구성 요소 내에서 빛의 산란(Light scattering)과 그림자를 시뮬레이션 해야합니다. 이러한 모든 복잡한 상호 작용, 특히 다중 산란(Multi scattering)을 렌더링하는 것은 어려운 일입니다. 특히 그러한 효과를 적용 가능한 성능과 품질을 보장하면서 PC에서 모바일로 확장해야하는 경우 더욱 그렇습니다. 또한, 이전의 방법은 다음과 같은 한계로 인해 고통을 겪었습니다. 단일 대기 유형 만 나타낼 수 있습니다. 대기 속성이 변경 될 때 계산 비용이 많이 드는 조회 테이블 (LUT) 업데이트가 필요합니다. 어떤 경우에는 시각적 인공물도 있습니다.우리는 지상에서 우주로의 View Rendering, 동적으로 업데이트 된 대기 속성, 비 반복적 방식의 라이트 다중 산란 시뮬레이션을 지원하는 새로운 물리적 기반 방법을 제시하며, 모두 하이 엔드 PC에서 모바일 하드웨어로 확장 가능합니다. 방법의 정확성에 대한 평가와 Ground Truth 경로 추적 결과와 비교하는 방법을 제시합니다. 또한 이러한 맥락에서 클라우드 렌더링과 최신 기술에 대한 몇 가지 개선 사항을 다룹니다.

Sebastien Hillaire는 Epic Games의 선임 렌더링 엔지니어로 Unreal Engine 렌더러에 중점을 둡니다. 그는 물리적 기반 음영, 체적 시뮬레이션 및 렌더링, 시각적 효과와 같은 여러 영역에서 시각적 품질과 성능을 높이고 있습니다. Epic Games에 입사하기 전에는 Dynamixyz에서 근무한 후 Criterion Games 및 Electronic Arts의 Frostbite 개발팀에서 근무했습니다.

Samurai Shading in Ghost of Tsushima

Jasmin Patry
이 강연에서는 Infamous : First Light가 출시 된 이후 Sucker Punch에서 수행 한 물리적 기반 셰이딩 연구에 대해 설명합니다.이 작품은 13 세기 봉건 시대 일본을 배경으로 한 PlayStation 4 게임 Ghost of Tsushima(오픈 월드 액션 어드벤처)의 개발에 사용되었습니다.먼저, 우리는 Heitz et al.의 SGGX Microake Distribution에서 영감을 얻은 이방성 스팩큘러 머티리얼 표현을 설명합니다. [Hei + 15]. 이를 통해 단일 압축 텍스처에서 공간적으로 다양한 방향으로 이방성 GGX 거칠기를 인코딩하여 하드웨어 필터링 및 밉 매핑을 지원할 수 있습니다. 또한 SGGX 표현을 사용하여 노멀 및 이방성 거칠기 맵(Roughness map)을 프리필터링하는 방법도 보여줍니다. 이를 통해 추가 런타임 비용없이 다양한 스케일에서 이방성 정규 분포의 모양을 유지할 수 있습니다.그런 다음 분쇄 된 벨벳과 같은 재료의 이방성 모양을 재현 할 수있는 새로운 실시간 돌기 산란 모델을 제시합니다. 또한 펠트 및 이끼로 덮인 암석과 같은 재질을 나타내는 데 적합한이 BRDF (지연된 렌더러에서 사용하기 위해 Eric Wohllaib에서 개발)의 단순화 된 버전을 설명합니다.다음으로 Penner와 Bor-shukov [PB11]에 의해 잘 알려진 Pre-Integrated Skin Shading 기법이 메쉬 곡률 텐서(mesh curvature tensors)의 사용을 통해 개선 된 것으로 설명합니다. 또한 시간 엄수 조명 및 구형 고조파에 대한 조회 테이블을 계산할 때 올바른 통합 방법을 사용하는 것의 중요성을 강조합니다.마지막으로, 녹음 된 강연에 포함되지 않은 추가 슬라이드에서는 저주파수 및 고주파수에서 물리적 기반 자료를 작성하는 새로운 접근 방식을 제시합니다. 우리가 개발 한 접근 방식은 전통적인 “Detail Maps”의 아이디어를 그대로 받아 들여 아티스트가 실시간 메모리와 셰이더 오버 헤드를 최소화하면서 물리적 기반의 타일링 가능한 재료 위에 대규모 변형을 직관적으로 작성할 수 있도록합니다.

Jasmin Patry는 Sucker Punch Productions의 수석 렌더링 엔지니어로 Infamous 2, Infamous Second Son, Infamous First Light 및 Ghost of Tsushima를 작업했습니다. 그 전에는 Radical Entertainment에 있었으며 Hulk, Scarface 및 Prototype 타이틀에 기여했습니다. 워털루 대학의 컴퓨터 그래픽 연구소의 대학원생으로서 그는 인기있는 Linux 게임 Tux Racer를 만들었습니다.이 게임은 PC Magazine에서 “Best Free Soware”로 선정되었으며 다운로드 수가 수백만 건에 달합니다. 그의 관심 분야에는 물리적 기반 렌더링, 사이언 틱 컴퓨팅, 성능 최적화, 그리고 게임이 맥주처럼 보이고 더 빠르게 실행되도록하는 모든 것이 포함됩니다.

Let’s Get Physical: The Hairy History of Shading at MPC

Rob Pieke, Igor Skliar 및 Will EarlMPC는 지난 15 년 동안 셰이딩 및 렌더링에 점점 더 물리적으로 동기를 부여하고 근거가있는 접근 방식을 추구해 왔습니다.
여정은 사용 가능한 계산 능력, 아티스트가 음영에 대해 말하고 상호 작용하는 방식, 학계 및 업계의 다른 곳에서 발전하는 방식을 기반으로 실용적인 의사 결정을 지속적으로 재평가했습니다.
2000 년대 초, MPC는 이미 CG 콘텐츠가 영화 콘텐츠에 자연스럽게 통합되도록 이미지 기반 조명을 사용하고있었습니다.
환경 맵은 일련의 원거리 조명으로 분해되어 복잡한 샷 (예 : 2007 년 나니아 연대기 : 프린스 카스피 안의 거대한 베일 샷)을 조명하는 데 사용되었을 때 조명아티스트의 역할에 필요한 데이터 랭글러로 변환했습니다.
수천 개의 섀도우 패스와 맵을 관리합니다.
실제 물리학에서 접합점이 거의 또는 전혀없는 맞춤형 표면 셰이더는 개별 자산이 분리되어있을뿐만 아니라 인접 자산과 관련하여 믿을 수있는 느낌을주기 위해 샷 특정 룩 개발에 막대한 투자를 해야하는 조명아티스트의 삶을 더욱 복잡하게 했습니다.
이 작업량을 줄이기 위한 우리의 첫 번째 노력 중 하나는 Ashikhmin과 Shirley [AS00]의 작업을 기반으로 한 표면 셰이딩을 도입하고 Neumann 등의 작업을 기반으로 한 “albedo pump-up”으로 보완하여 에너지를 보존하는 재료를 추구하는 것이 었습니다. [NNS99].
2010 년 Clash of the Titans에 처음으로 사용 된 중요도 샘플링 된 재료 (예 : 표면 거칠기에 의해 반사 / 교합 광선의 수가 구동되는 경우)에 대한 사내 프레임 워크로 보완되었습니다. 간접 접촉 셰이딩 비용을 줄이기 위해 먼저 포인트 클라우드에 직접 조명을 구 웠고 Pixar에서 제공 한 도구를 사용하여 추적을 위한 간접 조명이 있는 브릭 맵을 계산했습니다.
이 작업이 끝나기 전에 Pixar는 RenderMan에서 물리적으로 그럴듯한 셰이더를 위한 프레임 워크를 출시했으며 이를 사용하도록 전환했습니다.
레이트레이싱을 수용하려는 우리의 추세는 계속되고 맞춤형 재료에서보다 범용적인 재료로 이동하기 시작했습니다.
이러한 추세는 RenderMan에서 RIS 경로 추적 프레임 워크가 출시되면서 2015 년 경 급증했습니다.
섀도우 맵, 포인트 클라우드 및 브릭 맵에 대한 단점이었고 이제 모든 조명을 직접 및 간접적으로 레이 트레이싱합니다.
처음에는 셰이더 라이브러리를 새로운 RIS API로 포팅했지만, 그 이후로 대부분 Pixar에서 제공하는 셰이더를 사용하도록 마이그레이션했습니다.
아티스트의 경험, 에너지 보존이 중요한지, 레이어드 소재를 어떻게 표현해야하는지에 대한 내부적으로 흥미로운 토론을 되살렸습니다.최근 몇 년 동안 MPC는 처음에는 Lion King과 Maleficent 2를 위해 머리카락과 모피 셰이딩에 상당한 투자를했지만 그 이후로 계속되는 모든 모피 작업을 계속했습니다.
실제 모발의 물리적 특성에서 영감을 받아 외부 껍질에서 색상 추출을 중단했지만 대신 코어 내부의 체적 산란에서 색상을 추출했습니다.
“무료”로 옅은 불포화 팁과 같은 시각적으로 만족스러운 결과를 얻을 수있을뿐만 아니라 실제 생활에서 다양한 종의 모피의 광학적 특성을 과학적으로 측정 할 수 있습니다.
물론 오늘날 우리 아티스트의 대다수가 과학자가 아니라는 실용적인 도전을 제기했으며 “멜라닌 농도”와 같은 매개 변수를 증가 또는 감소시키는 시각적 결과가 무엇인지 또한 직관적이지 않습니다.
결과적인 모양이 주로 간접 조명이나 볼륨 조명 효과에서 파생되는 경우 최종 결과를 예상하기가 매우 어렵습니다.
이를 위해 아티스트와 긴밀하게 협력하여 언어가 물리학과 일치하는 부분 (예 : ‘이 자료의 IOR은 1.6’)과 그렇지 않은 부분 (예 : ‘털은 갈색이어야 함’)을 이해합니다.
나중의 경우, 우리는 쉐이딩 계산 내에서 가능한 한 물리적으로 구동되도록 노력하지만 예술적 의도를 물리적 매개 변수에 매핑하는 사용자 경험을 제공합니다.
예를 들어, 텍스처 아티스트에게 익숙한 색상 견본 선택 도구 (멜라닌 농도에 기반한 색상 포함)를 제공 할 수 있으며, 이는 결국 흡수 계수 값을 셰이더의 맵에 적용합니다.
앞으로도 우리는 셰이딩과 렌더링에서보다 물리적으로 정확한 (또는 적어도 물리적으로 동기 부여 된) 효과를 계속해서 추진하고 있습니다. 우리는 레이어드 머티리얼(중첩 재질)에 대한 내부 토론을 계속하고, 매개 변수 블렌딩의 장단점 (기술적, 예술적 등)의 무게를 높이고, 기존 BxDF에 더 많은 로브(Lobe)를 추가하는 등의 논의는 우리가 보유해야하는 다양한 BxDF에 대한 다른 토론에 영향을 미칩니다 ( 예를 들어, 유리 및 / 또는 천을위한 맞춤형 재료가 있어야합니까?).
마지막으로, 재료에 대한 신뢰도가 높아짐에 따라 우리는 세상을 비추는 조명과이 조명을 소비하는 카메라 및 센서를 어떻게 설명하는지에 대한 관심이 증가하고 있습니다.

Rob Pieke는 MPC Film의 수석 설계자 였습니다. 그는 어릴 때부터 PCjr의 BASIC에서 컴퓨터 그래픽 프로그래밍에 뛰어 들었고 영화관에서 Jurassic Park를 보는 시각 효과 산업에 완전히 매료되었습니다. 워털루 대학교에서 컴퓨터 공학을 전공 한 Rob은 C.O.R.E.에서 소규모 VFX R & D 팀을 이끌었습니다. 토론토의 Digital Pictures, e Chronicles of Narnia : Prince Caspian의 MPC에 합류하기 위해 런던으로 이사하기 전 그는 Harry Poter 시리즈부터 Guardians of the Galaxy, e Jungle Book 및 가장 최근에는 The Lion King에 이르기까지 할리우드 블록버스터에 사용되는 다양한 기술을 개발했습니다. 렌더링에 대한 특별한 왜곡으로 Rob은 항상 새로운 기술의 사용과 남용에 관심이 있으며 시각 효과 산업의“차세대 큰 것”이 무엇인지에 대해 관심이 있습니다. 그는 최근에 수석 소프트웨어 개발자로 SideFX에 합류했습니다.Igor Skliar는 MPC Film의 수석 셰이더 작가입니다. 미술 대학 (미술 전공)과 국립 전자 기술 대학을 졸업 한 그는 수학, 물리학, 네 아트에 대한 관심을 결합하여 CG 산업의 둥지 재료를 만들기 위해 노력했습니다. Igor는 실제 프로덕션을위한 렌더링 기술 및 PBR에 큰 관심을 갖고 있으며, 셰이더의 진화를 물리적으로 더 타당하고 에너지를 절약 할 수 있도록 개발하고 지원합니다. MPC에 합류 한 Aer는 렌더링에 대한 열정으로 인해 e Lion King (새로운 모피 BxDF를 도입 함), Malecent : Mistress of Evil (BxDF를 확장하여 깃털 작업을 효율적으로 수행)과 같은 프로젝트의 주요 셰이더 작성자가되었습니다. , 블레이드 러너 2049, 공각 기동대, 승객 및 기타 다수.Will Earl은 MPC Film의 최적화 책임자로 자산 개발 및 프로덕션 렌더링의 효율성을 높이는 작업을하고 있습니다. 그는 MPC Film에서 조명 및 외모 개발 책임자로 수년 동안 일했으며 가장 최근에는 Pokemon Detective Pikachu ´와 Sonic e Hedgehog에서 일했습니다. 그 전에는 Aardman Animations에서 Shot Technical Director로 일했으며 Weta Digital에서 King Kong의 Modeller로 시각 효과를 시작했습니다.

References

[AS00] M. Ashikhmin and P. Shirley. “An Anisotropic Phong BRDF Model”. In: Journal of Graphics Tools 5.2
(2000),
pp. 25–32.
[Gul14] O. Gulbrandsen. “Artist Friendly Metallic Fresnel”. In: Journal of Computer Graphics Techniques (JCGT)
3.4 (Dec. 2014). url: http://jcgt.org/published/0003/04/03/
[Hei+15] E. Heitz, J. Dupuy, C. Crassin, and C. Dachsbacher. “The SGGX Microake Distribution”. In: ACM Trans.
Graph. 34.4 (July 2015).
[Hof19] N. Hoffman. “Fresnel Equations Considered Harmful”. In: Workshop on Material Appearance Modeling.
Ed. by R. Klein and H. Rushmeier. The Eurographics Association, 2019.
[NNS99] L. Neumann, A. Neumann, and L. Szirmay-Kalos. “Reectance Models by Pumping up the Albedo Function”. In: Machine Graphics and Vision. 1999, pp. 3–18.
[PB11] E. Penner and G. Borshukov. “Pre-Integrated Skin Shading”. In: GPU Pro 2. A K Peters, 2011, pp. 41–55.
[Sch94] C. Schlick. “An Inexpensive BRDF Model for Physically-based Rendering”. In: Computer Graphics Forum
13.3 (Aug. 1994), pp. 233–246.

Categories
tutorials

Indirect Drawing with Unity

This is a reorganization of the Unity presentation.

end of content.

Categories
tools

Mip-chain artist template by Substance designer.

커스텀 밉맵체인에 대응하는 Substance designer template 제작을 간단하게 소개 하고 게임엔진에서 사용하는 툴의 특성을 이해 한 후 TA 가 어떤 추가 업무를 추진 할 수 있는지 소개한다.

신규 Graph 를 생성 하고 Graph Name 을 설정하세요.

일단 간단하게 템플릿을 제작 한 후 이것을 다시 PIXEL PROCESSOR 로 제구성 할 것이다.