유니티/게임그래픽
-
이미지 흑백으로 만들기, Lerp 함수유니티/게임그래픽 2024. 2. 19. 21:05
fullforwardshadows는 그림자 관련 부분이다 이게 있으면 쉐이더를 사용한 오브젝트가 랜더링 상태일때 모든 라이트에서 그림자를 생성한다 이 구문을 지우게 되면 포인트나 스포트라이트에서는 그림자를 생성하지 않는다 흑백으로 바꾸는 방법은 매우 간단하다 출력을 (c.r + c.g + c.b) /3 으로 바꿔버리면 된다 이렇게 연산하면 c의 rgb값 평균이 나오게 되고 3으로 나누었으니 한자리 숫자로 나오게 된다 Lerp라는 단어 자체는 직선적인 비율로 값이 변환되는것을 의미하지만 지금은 복잡하게 알 필요없고 두 텍스쳐를 섞어주는 함수쯤으로만 이해하자 lerp(X, Y, s) 이게 기본형식으로 X와 Y는 같은 단위여야 하고 s는 float이다 이번엔 풀과 모래 텍스쳐를 lerp 함수를 이용해 합쳐보겠..
-
텍스쳐 입력받기유니티/게임그래픽 2024. 2. 19. 21:05
텍스쳐를 하나 입력받아 구에 적용시키는 스크립트를 짜보자 Shader "Custom/NewSurfaceShader" { // Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Standard fullforwardshadows #pragma target 3.0 // sampler2D _MainTex; // struct Input { float2 uv_MainTex; }; // void surf (Input IN, inout SurfaceOutputStandard o) { fixed4 c = tex2D (_MainTex, IN.uv_..
-
Shader 응용유니티/게임그래픽 2024. 2. 19. 02:53
flaot3 (0.5,0.5,0.5) + flaot3 (0.5,0.5,0.5) = flaot3 (1,1,1) flaot3 (1,1,0) + flaot3 (1,0,) = flaot3 (2,1,0) 하지만 실제로 보이는 색상은 (1,1,0) 데이터에는 (2,1,0)으로 저장되어 있다 flaot3 (1,0,0) - flaot3 (0,0,1) = flaot3 (1,0,-1) 하지만 실제로 보이는 색상은 (1,0,0) 데이터는 마찬가지 flaot3 (0.5,0.5,0.5) * flaot3 (0.5,0.5,0.5) = flaot3 (0.25,0.25,0.25) float3(1,0,0) * float3(0,1,0) = float3(0,0,0) 연산은 같은 자릿수끼리만 가능하다(float-float, float3-fl..
-
Shader 기초지식 & 구에 색상 집어넣기유니티/게임그래픽 2024. 2. 18. 21:21
1.0, 1 둘다 가능 만약 RGB 세가지의 색을 구현한다면 float3, 여기에 알파까지 추가한다면 float4로 표현한다 flaot3 (0.5,0.5,0.5) + flaot3 (0.5,0.5,0.5) = flaot3 (1,1,1) flaot3 (1,1,0) + flaot3 (1,0,) = flaot3 (2,1,0) 하지만 실제로 보이는 색상은 (1,1,0) 데이터에는 (2,1,0)으로 저장되어 있다 flaot3 (1,0,0) - flaot3 (0,0,1) = flaot3 (1,0,-1) 하지만 실제로 보이는 색상은 (1,0,0) 데이터는 마찬가지 flaot3 (0.5,0.5,0.5) * flaot3 (0.5,0.5,0.5) = flaot3 (0.25,0.25,0.25) 1 - flaot3(1,0,0)..