.shader
Shader "MyShader"
{
Properties
{
....
}
SubShader
{
int A; // 전달받을 변수
float B; // 전달받을 변수
sampler2D C; // 전달받을 변수
sampler3D D; // 전달받을 변수
}
※ SubShader 에다 변수를 선언하고....
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyClass: MonoBehaviour {
private Material myMaterial; // 쉐이더에 접근할 머트리얼
private myMaterial= new Material(MyShader); // MyShader를 적용
// 넘길 데이터
int intData;
float floatData;
Texture2D Texture2DData;
Texture3D Texture3DData;
void Update()
{
///// 변수 적용, 변수 넘기기
myMaterial.SetInt("A", intData);
myMaterial.SetFloat("B", floatData);
myMaterial.SetTexture("C", Texture2DData);
myMaterial.SetTexture("D", Texture3DData);
.......
///// 변수 적용, 변수 받아오기
Debug.Log(myMaterial.GetInt("A"));
Debug.Log(myMaterial.GetFloat("B"));
Debug.Log(myMaterial.GetTexture("C"));
Debug.Log(myMaterial.GetTexture("D"));
}
int, float, texture 이외에도 많은 자료형을 지원함.
'Shader' 카테고리의 다른 글
ShaderLab 구문 (Unity) (0) | 2018.11.05 |
---|---|
Unity3D Shader 방식 (0) | 2018.11.05 |
HLSL 내장 함수 (자료형) (0) | 2018.11.05 |
#02. 일단 용어 픽셀셰이더, 버텍스 셰이더 (0) | 2017.08.09 |
#1 어찌하다보니 쉐이더도 해야 하는 상황이 왔넹.. (0) | 2017.08.09 |