
Part10. Lit Shader Graph를 이용해 봅시다 1. Lit Shader지금까지 사용해왔던 UnLit 셰이더를 뒤로 하고, 이제 Lit 셰이더에 대해 알아보도록 하자! Lit Shader란?Unity의 URP 또는 HDRP에서 사용하는 물리기반 셰이더이다.물리 기반 셰이더란 기존의 구형 라이팅 시스템과 달리 주변 환경에 따르 재질의 변화를 물리 법칙에 입각하여 실시간으로 계산해서 표현해 줄 수 있는 재질의 표현 방식이다. 조명, 그림자, 반사, 금속성, 거칠기 등을 자동으로 처리해주는 듯 하다. 지금부터 릿 셰이더를 생성하고 사용해보도록 하겠다. 생성하면 나오는 필드들 확실히 Unlit 셰이더 보다는 이것저것 많이 들어간 모습이다. 2. Lit Shader Graph 사용하기 총을 하나 준비..

Part9. 버텍스 컬러를 이용해 봅시다 1. 버텍스 컬러를 적용해 봅시다 우선 버텍스 컬러에 대해 알아보자. 버텍스 컬러란?3D 모델의 각 버텍스(정점)에 직접 할당된 색상 값이다.(1.0, 0.0, 0.0, 1.0) 이런 식으로 RGBA 값을 갖고 있다. 이 버텍스 컬러는 모델의 정점 데이터에 포함된다. 간단한 색상 표현텍스처 없이도 모델에 색상을 입힐 수 있음.그래디언트 효과정점마다 다른 색을 주고 보간하면 자연스럽게 색이 변하는 효과.마스킹예: 버텍스 컬러의 R 채널을 이용해 마스크 범위를 조절.애니메이션/셰이더 효과예: 특정 컬러 값(R=1)이 있는 버텍스만 흔들리게 하거나, 알파 값으로 투명도 조절.머 이런데에 쓰인다고 한다. 챗지피티가 2. 버텍스 컬러를 이용한 작업을 해 봅시다 유니티 패..

Part8. UV를 다루는 방법을 배워봅시다 1. UV의 기본개념 UV란?텍스처 좌표계이다.3D 모델에 그림(텍스처)을 입힐 때, 2D 텍스처에서 어느 부분을 사용할지를 알려주는 좌표이다. 2. UV를 시각적으로 해석해 보도록 합시다 3. UV에 숫자를 더해 봅시다 4. UV에 숫자를 곱해 봅시다 5. Time으로 UV가 흘러가게 해 봅시다꺄아아아아아아아아아아아아아아아아아아 6. UV를 이용해서 불 이펙트를 만들어 보도록 합시다 이제 불을 만들어 볼거다!우선 불 사진을 준비하고 Surface Type를 Opaque에서 Transparent로 바꿔준다. Transparent로 바꿔줘야 반투명이 활성화되면서, 알파 채널을 넣을 수 있게 된다.Blending Mode는 Addictive로..

Part7. 색상과 텍스쳐의 연산, Lerp 1. 색상을 입력 받고, 밝기를 조절하는 기능을 만들어 봅시다Float 변수 세 개를 입력 받아 Combine RGB 값을 만들어 BaseColor에 연결해보기 색상을 입력 받고, 밝기를 조절하는 기능을 만들어 볼거다.밝기를 나타낼 float 형의 변수를 만들어줬다. 이렇게 한글 이름을 지으면 왼쪽처럼 레퍼런스 이름이 없다.. _Brightness라고 지어줌코드에서 머티리얼을 제어해야 할 때 저 레퍼런스로 접근하기 때문에 이름을 잘 지어줘야 한다. 이렇게 세팅을 끝내 놓고 씬을 보며 밝기를 조절해보자! 색상을 회색으로 맞춰놓고, 이건 밝기 0일 때 이건 밝기 1일 때이다. 여기서 질문. Vector3에 float 값 1을 어떻게 더하는거지? = > Vec..

Part5. Shader Graph 기본 조작하기 2: 분해와 재조립 / 노드와 색상 연산과 감마 코렉션 1. 노드의 값을 분해하고 재조립하기split/ combine swizzling Flip 2. 노드(숫자)의 연산 덧셈/ 곱셈/ 뺄셈/ 나눗셈 반전(OneMinus) 0~1사이를 넘어가는 연산 각종 블렌딩 연산 3. Color의 연산과 감마 코렉션 Color 연산Color 노드끼리의 덧셈도 벡터의 덧셈과 비슷한 결과가 나온다. 비슷할 뿐이지 같지는 않다...!그 이유는 바로바로 감마 코렉션이 있기 때문이다. 자 이렇게 회색 컬러끼리 더했을 때와 회색 벡터끼리 더했을 때 프리뷰 결과가 다른 것을 볼 수 있다. 감마코렉션이란? 검정색 - 흰색의 그라데이션을 보았을 때리니어한 그라데이션은 수학적으로 정확..

Part5. Shader Graph 기본 조작하기 1: 색상 출력 1. Shader Graph 기본 사용법1_1. Shader Graph 기본 사용법이번 파트에서는 셰이더 그래프 기본 조작으로 색상 출력에 대해 공부한다. 저번과 똑같이 셰이더 그래프를 적용한 머티리얼을 아무 오브젝트에 넣어 주었다. Unlit 을 사용하는 이유는 조명의 영향을 받지 않는 순수한 색을 보기 위해서... 라고 한다.더보기출처: 구글 검색 AI 개요 자, 셰이더 그래프를 열고 Master Stack 을 보자 Master Stack은 실제로 셰이더에 값을 넣게 되는 최종 결과 노드이다.셰이더 종류에 따라 이 입력값 종류는 달라진다. Vertex Shader에 위치, 노말, 접선을 넣을 수 있고, Unlit 이라서 Fragment..

Part4. 셰이더 그래프 만들기와 Property 1. 오브젝트에 메터리얼과 셰이더를 적용해 봅시다본격 실습을 진행하기 위해 URP 프로젝트를 새로 파봤다! Unity6 로 켜니 괜히 기분이 조음 Unit Shader Graph 하나를 생성해준다 Shader는 머티리얼에, 머티리얼은 오브젝트에 적용해주기 민둥맨둥하다 2. 셰이더 그래프를 열어서 경로를 바꿔 봅시다 셰이더 그래프는 다음과 같이 머티리얼에서 찾아 적용할 수 있다 폴더와 위치를 바꾸려면 셰이더 그래프에서 폴더명과 경로를 수정하면 됨 오잉 그리고 책에서는 Ctrl+S 단축키가 안 먹힌다고 하는데, 버전 업 되면서 바뀐건지 나는 잘된다. 3. Blackboard와 GraphInspector를 이용하여 셰이더 Properties를 만들어 봅..
Part1. 셰이더1. 셰이더란 무엇인가?일반적 정의 3D 컴퓨터 그래픽에서 최종적으로 화면에 출력하는 픽셀의 색을 정해주는 함수 감성 한 스푼 직영하면 음영, 그늘. 그래픽 데이터의 음영과 색상을 계산하여 다양한 재질을 표현하는 계산 방법 메터리얼 vs 셰이더메터리얼은 셰이더를 담는 그릇이다. 구분셰이더머티리얼역할그리는 법 정의셰이더에 값을 채워넣은 '스킨'형태코드 or 그래프에셋 파일실행GPUGPU에서 셰이더와 함께 작동관계머터리얼의 뼈대셰이더에 따라 달라짐 2. 왜 그래픽 아티스트가 셰이더를 배워야 하는가?나는 프로그래머니까 왜 내가 셰이더를 배워야 하는가 생각해보자면1. cs 스크립트를 짜는 것 이외에 셰이더로 구현할 수 있는 것들이 존재함. 두 가지를 모두 알고 내가 선택하고 싶다.2. 이 ..
16-3. 타입을 알려주는 키워드 decltype 와 친구 std::declval 1. decltypeC++11에서 도입된 decltype 키워드는 식의 타입을 알아내는데 사용하는 키워드이다.decltype(/* 타입을 알고자 하는 식*/) 기본적인 사용 예시:#include struct A { double d;};int main() { int a = 3; decltype(a) b = 2; // int int& r_a = a; decltype(r_a) r_b = b; // int& int&& x = 3; decltype(x) y = 2; // int&& A* aa; decltype(aa->d) dd = 0.1; // double} 2. 값 카테고리C++에서 모든 식(express..
유니폼 초기화 1. 배경 C++에서 객체를 생성할 때 괄호()를 사용하면 의도치 않게 함수 선언으로 해석되는 경우가 있다.#include class A { public: A() { std::cout 이 코드는 A 객체를 생성하는 것처럼 보이지만, 실제로는 A를 반환하고 인자가 없는 함수 a를 선언한 것으로 해석된다. 2. 균일한 초기화 문법: 중괄호{} 사용 C++11에서는 이러한 모호성을 해결하기 위해 중괄호{}를 사용하는 균일한 초기화를 도입했다#include class A { public: A() { std::cout 중괄호 초기화의 중요한 특징은 데이터 손실이 있는(Narrowing) 변환을 허용하지 않는다는 것이다.#include class A { public: A(int x) { st..
- Total
- Today
- Yesterday
- 지크슈
- Vector
- semaphore
- Java
- 게임개발
- 세마포
- unorderedmap
- unityAR
- ㅗㅂ
- 유니티
- 바이너리세마포
- 포톤
- 유니티슈팅게임
- SpinLock
- ARface
- dependencyResilutionManagement
- 안드로이드스튜디오
- 뮤텍스
- C++
- mutex
- map
- Unity
- NotFoundException: String resource ID #0x0
- registerForActivityResult
- 스핀락
- unorderedset
- photon
- 동기화
- StartActivityForResult
- 광유다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |