参考 †
初期設定 †
- ソースコードの取得
https://github.com/EpicGames/UnrealEngine/tree/master
のページの右側「Clone or Download」を押して取得
- Gitの場合はそこのURLをコピー、GitからCloneでそのURLを指定
- Master以外のバージョンにしたい場合はswichする
- Downloadだと、zipファイルが取得できるのでそのまま
- 落としてきた中にある「Setup.bat」を実行
- 「Generate Project File.bat」を実行
- 「UE4.sln」が出来上がる
- 「UE4.sln」を立ち上げて「Development Editor」構成でビルド。実行。
- プロジェクトブラウザが立ち上がるので「C++」タブで何か作る
- プロジェクト用のVisual Studioが立ち上がる
- この時点で「UE4.sln」のVisual Studioは閉じていい
- 「Development Editor」構成でビルド。実行。
- いつものエディターが立ち上がる。以後はこれを弄っていく
GBufferの拡張 †
Shading Modelの追加 †
参考 †
やってみた †
UE4.12
参考 †
- Engine/Config/ConsoleVariables.ini
r.ShaderDevelopmentModeを1に
- Engine/Source/Runtime/Engine/Classes/Engine/EngineTypes.h
EMaterialShadingModel
に追加
- Engine/Source/Runtime/Engine/Private/Materials/MaterialShader.cpp
GetShadingModelString
UpdateMaterialShaderCompilingStats
- Engine/Source/Runtime/Engine/Private/Materials/MaterialShared.cpp
FMaterial::SetupMaterialEnvironment
- Engine/Shaders/DeferredShadingCommon.usf
#define SHADINGMODELID_*
- Engine/Shaders/BasePassPixelShader.usf
FPixelShaderInOut_MainPS
- Engine/Shaders/ShadingModels.usf
SurfaceShading
自作関数に
- Engine/Shaders/PostProcessAmbient.usf
ImageBasedLightingMISに必要なら
シェーダーの流れ †
- SurfaceShading
がMicrofacet Specular, lambertの計算。
- GetDynamicLighting - LightAccumulator_Add
辺りがライティング決定部分。NoLがライティング係数。
Defferd Shading時のシェーダーの流れ †
RadialPixelMain(DefferdLightPixelShader.usf)
GetDynamicLighting(DeferredLightingCommon.usf)
SurfaceShading(ShadingModels.usf)
Forward Shading時のシェーダーの流れ †
FPixelShaderInOut_MainPS(BasePassPixelShader.usf)
GetForwardDirectLighting(ForwardLightingCommon.usf)
GetDynamicLighting(DeferredLightingCommon.usf)
SurfaceShading(ShadingModels.usf)
Shading Modelの追加 †
エンジン改造-ShadingModel拡張
マテリアルの出力にパラメーターを追加 †
エンジン改造-マテリアルの出力にパラメーターを追加
Gバッファの拡張 †
エンジン改造-Gバッファの拡張
PostProcessMaterialのタイミング追加
シェーダーの変更 †
参考 †
メモ †
- シェーダーコード変更した後は、エディター上でCtrl+Sfhit+.
- r.ShaderDevelopmentMode=1 の設定をしておく必要あり。(config or console)
エディタ拡張 †