[グラフィック]グラフィック学習(3)
ここでは色に関する実習を行います.
本の中のコードには、入力と出力の色の部分しか残っていません.
struct Input{}をクリアするとエラーが発生します.少なくとも1つのメンバー、 を含める必要があります.属性のセミコロンに注意!習慣のようにセミコロンを使って、それから間違いが出て、何の間違いなのか分からず、 をうろうろしました. o.Albedoはr,g,bしか必要ないのでtestColorではなくtestColorと書きます.rgb を書く
C#の習慣に従って、o.Albedo=new float 3()と書き、新しいキーワードは必要ありません. 変数を作成するとき、属性宣言->CGROGSRAMからENDCGに宣言するプロセスは、 にますます熟知しています.
1つのfloat値を受け入れ、既存の出力色に基づいて輝度を調整する方法
float値を加算すると明るくなる方法を考えてみましょう.
ディスプレイに表示される色は、加えれば加えるほど明るくなる加算ブレンドです.
これは、既存の色に単純に加えて明るくする方法のようです.
上のコードに追加されたコードの一部のみを整理し、以下のようにします.
技術芸術家のために設計されたUnitizer Start Up(鄭宗弼著)
1.入力出力色
本の中のコードには、入力と出力の色の部分しか残っていません.
学識
Shader "NewShader"
{
Properties
{
_TestColor("TestColor", Color) = (1,1,1,1)
}
SubShader
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
struct Input
{
float4 color : COLOR; // 버텍스 컬러를 받아오는 마법의 주문
};
float4 _TestColor;
void surf (Input IN, inout SurfaceOutputStandard o)
{
o.Albedo = _TestColor.rgb; // o.Albedo는 r,g,b만 필요하므로 _TestColor라고 작성하지 않음
o.Alpha = _TestColor.a;
}
ENDCG
}
FallBack "Diffuse"
}
2.R、G、Bを個別に入力して色を設定する
学識
Shader "NewShader"
{
Properties
{
_TestColor("TestColor", Color) = (1,1,1,1)
_Red("Red", Range(0,1)) = 0
_Green("Green", Range(0,1)) = 0
_Blue("Blue", Range(0,1)) = 0
}
SubShader
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
struct Input
{
float4 color : COLOR;
};
float4 _TestColor;
float _Red;
float _Green;
float _Blue;
void surf (Input IN, inout SurfaceOutputStandard o)
{
o.Albedo = float3(_Red, _Green, _Blue);
o.Alpha = _TestColor.a;
}
ENDCG
}
FallBack "Diffuse"
}
(実際、ここから先はTestColor部分は不要)3.色を明るくして暗くする
1つのfloat値を受け入れ、既存の出力色に基づいて輝度を調整する方法
float値を加算すると明るくなる方法を考えてみましょう.
ディスプレイに表示される色は、加えれば加えるほど明るくなる加算ブレンドです.
これは、既存の色に単純に加えて明るくする方法のようです.
上のコードに追加されたコードの一部のみを整理し、以下のようにします.
Properties
{
_BrightDark ("Brightness $ Darkness", Range(-1,1)) = 0
}
SubShader
{
CGPROGRAM
float _BrightDark;
void surf (Input IN, inout SurfaceOutputStandard o)
{
o.Albedo = float3(_Red, _Green, _Blue) + _BrightDark;
}
ENDCG
}
リファレンス
Reference
この問題について([グラフィック]グラフィック学習(3)), 我々は、より多くの情報をここで見つけました https://velog.io/@minjujuu/Graphics-그래픽스-스터디-3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol