일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 옵저버
- 복사생성자
- sequential
- material
- 한국산업기술대학교
- 멀티코어 프로그래밍
- 스마트포인터
- Multithread
- c++
- C
- observer pattern
- EFFECTIVE C++
- multi-core
- Unreal
- 멀티쓰레드
- Atomic
- random access
- MultiCore
- stl
- 메모리관리
- 프레임워크
- 쓰레드
- 디자인패턴
- 유니크포인터
- vector
- Design Pattern
- 게임공학과
- thread
- 옵저버 패턴
- 멀티코어
- Today
- Total
목록고급 그래픽스 효과 (16)
태크놀로지
오늘목표 Beam Particle & 필요한 머테리얼 제작 실습 빔형태의 재질을 만들어 봅시다. 끝으로 갈수록 투명해지는 재질을 만들어봅시다. 파티클 컬러를 지정해주고 sine 패턴을 곱해주어 이미시브컬러와 오파시티에 적용시켜줍시다. 또한 two sided를 켜주어 은면컬링을 꺼줍시다. 파티클 시스템을 만들고 전에 만들었던 재질을 적용시켜줍시다. 파티클 타입데이터를 Beam Data로 설정해준 후 Source와 Target를 생성해줍니다. Source와 Target 위치를 지정해줍니다. 저는 100, -100으로 지정해주었습니다. velocity도 필요없으니 0으로 세팅해줍니다. 또한 Beam Data로가 speed를 0으로 세팅하고, Control Point(Interpolation Points)를 지..
오늘목표 실습 우선 베이스컬러를 설정합시다. 그냥 색만 넣기엔 밋밋하니 물문양 텍스쳐와 블랜딩 해줍시다. 다음 투명 효과를 주기 위해 블랜드모드를 Translucent로 설정해주고, Translucency의 Lighting Mode를 Surface TranslucencyVolume으로 설정해줍시다. 그리고 물이기 때문에 반사가 되야되기 때문에 러프니스를 0, 투명도인 오파시티는 0.5정도 적용해줍니다. 이제 좀 물방울 형태를 띄고 있습니다. 이제 sine주기에 따라 움직이도록 대각선 패턴을 만들어줍시다. z축으로만 이동하도록 만들것이기 때문에 normal값의 z축을 떼어와 sine주기 대각선 패턴에 곱해줍시다. 그리고 x,y값은 0으로 변경하여 디스플레이스먼트에 적용해줍니다. 다음으로 노말값을 적용해줍시..
오늘목표 중력가속도에 의해 z축으로 흘러내리도록 표현 (디스플레이스먼트 맵핑 - 테셀레이션) 실습 특정 패턴에 따라 흘러내리는 부분을 표현할겁니다. 우선, 테셀레이션을 켜주고 Noise 패턴을 월드 디스플레이스먼트에 연결해줍시다. 하지만 현재 월드 노말값, 방향값이 적용되지 않아 한쪽으로만 쏠리는 현상이 일어납니다. VertexNormalWS를 곱해줍시다. 우리가 만들 얼음 이펙트는 모든 방향으로 뻗는게 아닌 중력가속도로 인해 z축으로만 뻗어나가야합니다. worldnormal값의 z축을 뽑아와 역수를 취해줍시다. 이 값을 noise패턴과 곱해줬을때 원하는 결과가 나오지 않습니다. 이유는 z축을 뽑아온 값들중 음수값이 존재하기 때문에 clamp로 모두 양수로 변경해준뒤 곱해줍시다. 얼음의 아래부분만 적용된..
오늘목표 1. Fresnel (Base Color) 2. 러프니스(Noise), Metallic 적용 3. Normal 적용 4. SubSurface Color 실습 1. Ice Base Color 안쪽으로 갈수록 점점 어두운 색이 나오도록 표현하기 위해 Fresnel 기능을 사용합시다. 바깥쪽은 밝은색이 나오고 안쪽으로 갈수록 어두운색을 표현하기 위해 Lerp 선형보간을 사용하여 값을 출력해줍시다. 하지만 겉이 어둡고 안이 밝도록 출력되어버렸습니다. oneMinus를 사용하여 Fresnel의 역수값을 연결해줍시다. 2. 러프니스(Noise), Metallic 적용 다음으로 러프니스에 Noise패턴을 적용해봅시다. 일단 Metallic은 0으로 지정해놉니다. 자세히 보면 빛 방향에 따라 노이즈 패턴이 나..
실시간 게임중에서 Constant값을 변경시에 많은 컴파일 시간이 소요됩니다. 예를 들어 Class를 변경시에 Compile시 obj파일을 다시생성하게 되고 컴퓨터 성능에 따라 많으면 10초 이상까지 소요됩니다. 따라서 상수값은 파라미터 형태로 빼내어 전달해줍시다. 실습 Constant 노드에 마우스 왼쪽키를 눌러 파라미터 변환을 해줍니다. 그리고 이전에 만들었던 라바이펙트에서 사용하는 상수값(텍스쳐 이동속도)를 연결해줍시다. 저장후 나가서 만들었던 재질의 인스턴스를 만들어줍니다. 인스턴스를 들어가보면 파라미터로 분리해놨던 값을 변경할 수 있습니다. 값을 변경하고 저장후 컴파일창에서 텍스쳐 이동속도가 변경된것을 볼 수 있습니다. 출처 한국산업기술대학교 게임공학과 이택희 교수님 고급그래픽스효과 강의 - M..
오늘목표 Crust Noise 패턴(검은부분) 부분이 튀어나오도록 구현 실습 Crust Noise 패턴의 검은부분의 값을 얻어오기 위해 clamp로 양수값만 얻어온후 1-x(역수값)을 적용하여 값을 얻어옵니다. 검은영역(1-x, 역수값)과 이전에 연결해줬던 noise패턴의 값을 더해줍니다. 하지만 노말 방향값이 적용되어 있지 않아 한쪽 방향으로만 외형변형이 일어나게 됩니다. vertexnormalWS값을 곱해주어 값이 증가될 방향을 지정해줍시다. 최종결과 출처 한국산업기술대학교 게임공학과 이택희 교수님 고급그래픽스효과 강의 - Lava effects
오늘목표 1. 표면디테일 추가 2. 노말값 추가 3. 노이즈값에 따라 외형 변경 (월드 디스플레이스먼트 추가(tessellation)) 4. crust noise 패턴 추가(용암에서 식어 검은색인 부분) 실습 1. 표면 디테일 추가 우선 움직이는 텍스쳐를 하나 만든후 노이즈 패턴과 더해줍니다. 더했을시 0~2사이의 값이 나오기 때문에 너무 밝게 나타납니다. 따라서 더한값을 2로 나눠줍시다. 2. 노말값 추가 다음으로 움직이는 노말값을 추가해줍니다. 빛 방향에 따라 텍스쳐가 달라진 차이를 볼 수 있습니다. 3. 노이즈값에 따라 외형 변경 (월드 디스플레이스먼트 추가(tessellation)) 노이즈 패턴에 따라 외형변경을 주고싶기 때문에, tessellation - PN Triangle 모드로 설정한후에 ..
최종목표 오늘목표 온도에 따른 이미시브 컬러 적용, 노이즈 발생, 텍스쳐이동 실습 노이즈 패턴을 만들기 위해 노이즈 컴포넌트를 생성합니다. 여기서 Function을 Gradient - Computation으로 변경하고 Tiling을 켜줍니다. 하지만 노이즈가 너무 작아서 보이지 않아 scale값을 조정해줍시다. 다음으로 온도에 따라 색을 변경해주는 BlackBody를 생성하여 온도의 일정범위(0, 2500)를 선형보간하여 전달해줍시다. 하지만 색이 부자연스럽습니다. 이유는 Noise가 -1 ~ 1사이의 값이기 때문입니다. *Noise 컴포넌트는 많은 성능을 차지하기 때문에 min, max의 값에 따라 여러개를 생성하는것보단 기존의 값에서 연산을 통해 원하는 값을 사용하는 게 좋습니다. 텍스쳐가 고정된것이..