Unity3D SRP 學習筆記

2021-09-29 20:43:58 字數 3352 閱讀 8728

public

class

myrenderpipelineasset

:renderpipelineasset

#if unity_editor

//建立管線配置檔案。

public

static

myrenderpipelineasset

create()

//建立管線配置檔案。

[system.diagnostics.codeanalysis.suppressmessage

("microsoft.performance"

,"ca1812")]

internal

class

createmypipelineasset

:endnameeditaction

}//建立管線配置檔案。

[menuitem

("assets/create/rendering/my render pipeline/pipeline asset"

, priority = coreutils.assetcreatemenupriority1)

]static

void

createlightweightpipeline()

#endif

}

public

class

myrenderpipeline

:renderpipeline

//每一幀渲染都會呼叫一次這個函式進行具體渲染。

protected

override

void

render

(scriptablerendercontext context, camera[

] cameras)

//提交渲染命令。

context.

submit()

; commandbufferpool.

release

(commandbuffer)

;endframerendering

(context, cameras);}

}

//渲染設定

struct drawingsettings

//這些引數可以疊加

enum perobjectdata

//排序設定

struct sortingsettings

//排序方式

enum sortingcriteria

//排序方式

enum distancemetric

//過濾模式

struct filtersettings

shader "custom/myshader"

subshader

pass

hlslprogram

#pragma vertex vertexmain

#pragma fragment fragmentmain

#include

"packages/com.unity.render-pipelines.lightweight/shaderlibrary/core.hlsl"

struct vertexinput

;struct vertexout

;vertexout

vertexmain

(vertexinput input)

float4 fragmentmain()

: sv_target

endhlsl

}}}

float4x4 getobjecttoworldmatrix()

unity_matrix_m

世界矩陣

float4x4 getworldtoobjectmatrix()

unity_matrix_i_m

世界逆矩陣

float4x4 getworldtoviewmatrix()

unity_matrix_v

視角矩陣

float4x4 getworldtohclipmatrix()

unity_matrix_vp

視角投影矩陣

float4x4 getviewtohclipmatrix()

unity_matrix_p

投影矩陣

float4x4 getoddnegativescale()

unity_worldtransformparams.w

float4x4 transformobjecttoworld(float3 positionos)

本地到世界

float3 transformworldtoobject(float3 positionws)

世界到本地

float3 transformworldtoview(float3 positionws)

世界到視角

float4 transformobjecttohclip(float3 positionos)

本地到投影

float4 transformworldtohclip(float3 positionws)

世界到投影

float4 transformwviewtohclip(float3 positionvs)

視角到投影

real3 transformobjecttoworlddir(real3 diros)

real3 transformworldtoobjectdir(real3 dirws)

real3 transformworldtoviewdir(real3 dirws)

real3 transformworldtohclipdir(real3 directionws)

float3 transformobjecttoworldnormal(float3 normalos)

real3x3 createtangenttoworld(real3 normal, real3 tangent, real flipsign)

real3 transformtangenttoworld(real3 dirts, real3x3 tangenttoworld)

real3 transformworldtotangent(real3 dirws, real3x3 tangenttoworld)

real3 transformtangenttoobject(real3 dirts, real3x3 tangenttoworld)

real3 transformobjecttotangent(real3 diros, real3x3 tangenttoworld)

Unity學習筆記 3

rigidbody 剛體元件,使物體具有重力效果,碰撞 呼叫剛體裡的方法 verctor3 向量,1,0,0 向x的方向施加乙個力 rd.addforce new vector3 1,0,0 得到水平的乙個值,返回 1 1之間的數,相當於a d建 float h input.getaxis hori...

unity 3d學習筆記

1.日誌輸出 如果需要觀測webplayer執行時輸出的log,則可以在初始化start中加上下面這樣一段 但是此日誌檔案太大,過於冗餘 playersettings.useplayerlog true 2.場景切換 3.資源載入 所有通過resources類載入的資源必須放在名為resources...

Unity學習筆記3 Camera Skybox

camera 攝像機 如果只有乙個攝像機,可以粗暴理解為螢幕上看到的東西就是攝像機拍到的東西。新建乙個場景就會有乙個預設的攝像機,攝像機可以有多個。建立攝像機物件,還會預設帶有一些元件 transform 變換元件 camera 攝像機元件,向玩家捕獲和顯示世界,如果是其他物件加上這個元件,一樣有攝...