본문 바로가기

전체 글

(22)
[Unity] 색상 연산, 블렌더 오늘은 쉐이더의 색상 연산 방식에 대해 얘기해봅시다. -복습- '색상=숫자' 색상을 나타낼 때 가산 혼합 방식을 사용하는데 (한 픽셀당 빨강, 초록, 파랑 각 8비트 정도를 분배해 가산 혼합을 통해 다양한 색을 나타내는 방식) 포토샵에서는 256색상을 이용하며, 쉐이더에서는 백분율로 나타내 0~1까지로 색상을 나타내게 됩니다. R float3(1,0,0) G float3(0,1,0) B float3(0,0,1) 검정 flaot3(0,0,0) 흰색 float3(1,1,1) 이런식으로 RGB를 섞어 다양한 색을 내는 거죠. 노란색을 내고 싶다면? Y float3(1,1,0) 이런식으로 할 수 있습니다. float1=그레이 컬러 float2=RG (뒤의 값이 버려짐) float3=RGB float4=RGBA(..
[Unity] Shader Graph 기초 / UI 내용 정리 쉐이더 구성 -블랙보드 -그래프 인스펙터 -메인 프리뷰 색상, 색상 연산 기타 등등 쉐이더 그래프를 구경해봅시다. 이전 쉐이더는 코딩으로 제작하였으나 Unity 2018.1 이후버전 부터 HDRP,URP에서 사용할 수 있게 되었습니다. HDRP? URP? HDRP ( High Definition Render Pipeline) URP (Universal Render Pipeline) 스크립터블 렌더 파이프라인. 렌더 파이프라인은 말 그대로 렌더링의 처리 과정을 뜻하며, 유니티에서 더 좋은 품질의 성능, 그래픽을 보여주기 위해 제작되었습니다. 대충 넘어갑시다 오늘 할건 쉐이더 그래프니까 프로젝트를 새로 생성할 때 파이프라인을 선택할 수 있습니다. 저희는 URP를 이용합니다. 프로젝트명과 위치를 정..
[Unity쉐이더] 라이팅 이론_Vecter 아래 두 사진은 라이팅 전 후의 같은 배경입니다. 라이트를 이용해서 컬러를 추가했고, 음영 차이로 씬에 입체감을 주는 등 라이트 배치만으로도 최종 결과물을 낼 때 라이팅이 큰 영향을 끼친다는 것을 알 수 있습니다. 컴퓨터 내의 라이팅은 현실의 빛과 빛을 받는 물체에서 일어나는 현상들을 종류별로 구분해 현실, 카메라에 담을 수 있는 풍경과 최대한 비슷한 빛을 구현하고자 했습니다. 초기 라이팅 방식은 간단한 수학 계산이었습니다. 밝은 곳은 빛과 평행하고 있는 90도에 가까운 면. 어두운 곳은 빛과 서로 바라보는 방향이 틀어질수록 어두워지게 됩니다. 아래 사진은 위 라이팅 연산을 맥스 내에서 확인한 것입니다. 이제 유니티 내의 대표적인 라이트 3개를 보고 갑시다. Directional lights 디렉셔널 라..
[Unity 쉐이더] Vertex Color, Normal Map 버텍스 컬러 출력 색상 연산 러프 마스킹 노말 넣기 노말 대신 넣는 값 sunsimu1018.tistory.com/7 [쉐이더] 버텍스 컬러 활용 내용 정리 버텍스 컬러란?? 3D 맥스에서 버텍스 컬러 칠하기 Vertex Propertise Vertex Paint UV채널을 이용한 그라데이션 유니티에서 버텍스 컬러 칠하기 3Dmax에서 가져오기 Polybrush 버텍스 컬러 추가 묘사 sunsimu1018.tistory.com 버텍스 컬러에 대해 더 자세히 적어둠 버텍스 컬러란? 버텍스 컬러에 대해 알기위해 버텍스에 대해 알아보고 갑니다. 저번 UV 정보도 버텍스에 저장되는 것 처럼 색상값도 담을 수 있습니다. 버텍스 자체에 저장된 float4 RGBA의 정보를 버텍스 컬러라고 합니다. 각 버텍스의 사이..
[Unity 쉐이더] Tiling & Offset, UV애니메이션 UV란? UV애니메이션 타임값 이동 텍스쳐를 이용한 애니메이션 응용2- 풀 애니메이션 UV란? Texcoord 텍스쳐 좌표계 3D 모델링이 끝나면 텍스쳐를 입혀야하죠. 그 텍스쳐를 오브젝트의 어디에 입힐지 UV를 피면서 각 버텍스에 저장 해줍니다. 위와같은 UV 정보는 색상과 같이 숫자로 저장됩니다. R float3(1,0,0) G float3(0,1,0) B float3(0,0,1) RGB 색상값이 float3으로 저장되듯이 UV도 x,y좌표를 0~1의 float2로 나타냅니다. 그렇기 때문에 어떤 크기의 이미지든 백분율로 정사각형의 한 장에 UV 정보를 담을 수 있습니다. 각 모서리 사이의 값은 선형보간(lerp)로 보간됩니다. 시작하기 전 할 것 1. 코드 정리하기 2. 대소문자 주의 Tiling ..
[Unity 쉐이더] Lerp 내용 정리 밝기 텍스쳐 넣기 흑백만들기 러프 연습 밝기 조절 저번에는 색상 조절이 가능한 쉐이더를 만들어보았습니다. 이번에는 추가로 밝기까지 조절할 수 있도록 해봅시다. 과정을 하나하나 진행하며 저장해 유니티에서 에러가 뜨지 않는지 확인해줍시다! 시작하기 전에 평소와 같이 코드를 정리해주고 갑니다. 반복 함으로써 코딩이 익숙해지게 만드는 과정 중 하나입니다. 정리가 끝났으니 다시 슬라이더로 RGB색상을 조절하는 쉐이더를 만들어봅시다.(반복 학습) RGB까지의 제작 과정은 저번 글에서 설명했으니 스킵합니다. 밑의 사진들과 주석을 참고해주세요. 밝기를 조정하는 기능을 추가하려면 새로 변수가 필요합니다. R,G,B와 같이 float1의 슬라이더면 되지만 최소,최대값에 차이가 있습니다. 인터페이스를 제작했으니 ..
[Unity 쉐이더] 색상 연산 더보기 내용 정리 코드 정리 색상 연산 연습 이 글은 코알못의 시점으로 작성되었습니다. 머리가 굳은 상태로 작성되었습니다. 저번 글에서는 이름 짓기, 인터페이스 제작을 해봤습니다. 이제 본격적으로 SurfaceShader를 구경해보겠습니다. 코드를 보면 중괄호를 통해 구역이 나눠져있습니다. 집과 같은 형태로 상상해보면 훨씬 이해하기 쉽습니다. Shader 란 집 안에 Properties(현관)와 SubShader(마루)가 들어있고 밖에 FallBack "Diffuse"가 덩그러니 있습니다. 이건 언젠가 배우게 될 테니 지금은 무시합니다. SubShader 내부에는 또 여러 종류의 방이 있습니다. Tags, Input 등 작은 방도 있고, 서프라는 옆에 괄호로 무언가가 딸려있는 큰방도 있습니다. 또 하나의..
[Unity 쉐이더] properties 추가 내용 정리 쉐이더 언어 유니티 쉐이더 언어 레거시에서 쉐이더 생성 이름 설정 properties 추가 코드로 돌아온 나 쉐이더 언어 프로그래밍 언어는 종류가 많다 각 소프트웨어, 플렛폼에 따라 주로 사용하는 언어가 다르듯이 쉐이더에도 주로 사용되는 언어들은 아래와 같습니다. HLSL: 고급 쉐이더 언어 (High Level Shader Language) DirectX에 동작하는 언어. GLSL: OpenGL 쉐이더 언어(OpenGL Shading Language) 이름대로 OpenGL에 동작하는 언어. CG: (C for Graphics) nVidia에서 제작한 언어. 이 세 언어들은 서로 유사해 하나를 먼저 배우면 나머지 언어를 익히는데 큰 어려움이 없다고한다. HLSL과 CG는 서로 공동 개발했고, ..