用Standard核心自定義PBR Shader

2021-09-27 08:55:31 字數 1413 閱讀 6633

上個mmo專案結束有段時間了 ,最近開始新的沙盒專案了,把自己這段時間遇到的問題都整理整理,分享出來。

話不多說,直接上**:

shader "custom/******pbrtest"

_basecolor("basecolor", color) = (1,1,1,1)

_smooth("smooth", range( 0 , 1)) = 1

}subshader

cgprogram

//standardcustomlighting 自定義光照模型

//noinstancing noforwardadd 為了減少su***ce shader 生成通道

#pragma su***ce surf standardcustomlighting fullforwardshadows noinstancing noforwardadd

#pragma target 3.0

//引用pbr核心庫

#include "unitypbslighting.cginc"

#include "lighting.cginc"

//自定義輸入結構體

struct input

; //自定義輸出結構體

struct su***ceoutputcustomlightingcustom

; float4 _basecolor;

sampler2d _albedomap;

float4 _albedomap_st;

float _smooth;

inline half4 lightingstandardcustomlighting( inout su***ceoutputcustomlightingcustom s, half3 viewdir, unitygi gi )

inline void lightingstandardcustomlighting_gi( inout su***ceoutputcustomlightingcustom s, unitygiinput data, inout unitygi gi )

void surf (input i, inout su***ceoutputcustomlightingcustom o)

endcg

}fallback "diffuse"

}

通過su***ce shader,利用standard 核心演算法來實現pbr。

當然具體生成**可以通過

檢視。過su***ce shader,利用standard 核心演算法來實現pbr。

這裡只是提供一種思路,用su***ce shader要考慮變體的問題,不然解析起來有點費勁。

用WP Query自定義WordPress 主迴圈

我們知道操作 wordpress 主迴圈 wordpress loop 最容易的方法是使用 query posts 函式。但是使用 query posts 直接修改 wordpress 預設的主迴圈,會有以下的問題 會干擾那些用到了 wordpress 迴圈的外掛程式。可能使一些 wordpress...

用js自定義彈窗

用js自定義彈窗 如下 doctype html html lang zh cn head meta charset utf 8 title title title style popup popup content top info style script 給定乙個值,使點 確定按鈕 為 tru...

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...