
Part13. 프레넬 1. Fresnel 이란?빛이 표면을 비스듬히 통과할수록 더 많이 반사되는 현상. 물질 프레넬 효과 반사색 반사율의 변화비금속 (dielectric)눈에 띄게 강해짐 (프레넬이 강함)항상 흰색에 가까움입사각에 따라 크게 변화금속 (metal)변화는 적음 (프레넬 덜 두드러짐)물질 고유 색이 반사됨입사각과 상관없이 거의 일정 결국은 "나의 시선 벡터와 노멀 벡터가 90도가 되면 될수록 반사가 심해진다" 이 현상을 구현해야 한다는 것인데,역광이 있거나, 털, 반투명의 재질이라든가 하는 재질의 특성상 이 현상이 매우 강렬하게 나타날 수도 있다.이런 현상을 "림 라이트" 라고 한다. 2. Fresnel을 구현해 봅시다. 림 라이트를 만들기 위해 프레넬 공식을 구현해 보겠습니닷 새로운 U..

이제부터는 유니티에서 SimpleLit이라고 부르는 라이팅 구조를 셰이더 그래프로 만들어 보면서 학습해 보겠어요 Part13. 커스텀 라이트 (Lambert Light) 1. 커스텀 라이트 기본형 만들기 이전 챕터에서 배운 것: 조명 벡터와 노말 벡터를 내적하면 라이트의 기본 연산 구조 표현이 가능하다이번에는 커스텀으로 그 라이팅 구조를 직접 만들어 보겠습니다. 1.1 데이터 준비하기Unlit Shader Graph를 만들어서 노말 벡터를 준비해야 합니다. 노말 벡터 노드에는 위처럼 Space라는 파라미터가 존재하는데, 노멀 벡터가 어느 좌표계 기준으로 출력될지를 결정하는 옵션이에여Object노멀 벡터가 오브젝트 로컬 좌표계 기준 (오브젝트가 어떻게 회전·이동하든 값은 일정)ㄴ 오브젝트의 기준으로 무언가..

Part12. Digital Light 이론1. 디지털 라이트의 분류종류위치방향거리 감쇠모양디렉셔널 라이트X (위치 의미 없음)OX무한 평행광포인트 라이트OXO구형스팟 라이트OOO원뿔형 2. 디지털 라이트의 원리물체에 빛을 비추면 밝아진다 = 물체의 앞 방향이 빛의 방향과 마주보면 가장 밝다 3. 벡터 연산을 이용한 디지털 조명 연산물체의 앞 방향을 뜻하는 노말 벡터 정보는 오브젝트의 버텍스가 가지고 있다. 조명의 밝기 연산은 노말을 가진 버텍스에서 하고, 버텍스 사이의 밝기 값은 보간하여 표현한다.이렇게 되면 아래 왼쪽 그림처럼 버텍스 사이를 그라데이션으로 부드럽게 표현할 수 있고,각진 오브젝트를 표현하려면 인접하는 면의 노말 값을 전부 가지고 있어야 함https://www.youtube.com/w..

Part11. Lit 셰이더의 추가 기능과 응용기능을 사용해 봅시다 1. Heightmap (Parallax Mapping)Heightmap 이란, 물체의 표면 높이 정보를 2D 텍스처로 표현한 것이다. 밝을수록 높고, 어두울수록 낮음을 의미하고 대충 이런 느낌의 흑백 이미지 형태로 저장된다. 유니티 Lit Shader의 기능 중 하나이고, 일반적으로 Parallax의 맵으로 사용하고 있다. Parallax 란, 시점이 바뀔 때 물체 표면이 마치 깊이감이 있는 것처럼 보이게 만드는 착시 효과이다. 이미 배웠던 Normal Map 과의 차이를 생각해보자면Normal Map은 입체처럼 보이지만 시점이 바뀌어도 변화가 없고,Parallax Mapping은 시점에 따라 깊이감이 변화한다는게 포인트다! http..

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..
- Total
- Today
- Yesterday
- 동기화
- C++
- Unity
- unityAR
- Java
- 지크슈
- 스핀락
- Vector
- semaphore
- 게임개발
- unorderedmap
- map
- 포톤
- 뮤텍스
- 유니티슈팅게임
- photon
- unorderedset
- ARface
- registerForActivityResult
- 유니티
- ㅗㅂ
- StartActivityForResult
- SpinLock
- dependencyResilutionManagement
- mutex
- 광유다
- 바이너리세마포
- NotFoundException: String resource ID #0x0
- 안드로이드스튜디오
- 세마포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |