일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vector
- observer pattern
- 쓰레드
- c++
- 메모리관리
- 멀티쓰레드
- Unreal
- stl
- Multithread
- 옵저버 패턴
- C
- sequential
- MultiCore
- material
- Design Pattern
- 유니크포인터
- random access
- 멀티코어
- 게임공학과
- EFFECTIVE C++
- 프레임워크
- 복사생성자
- 디자인패턴
- Atomic
- 멀티코어 프로그래밍
- 한국산업기술대학교
- 스마트포인터
- 옵저버
- multi-core
- thread
- Today
- Total
목록분류 전체보기 (57)
태크놀로지
오늘목표 이미시브컬러에 Gen Pattern, Noise Pattern 추가 실습 우선 여러개의 대각선을 만들어 봅시다. u,v좌표를 더하면 대각선이 만들어집니다. 다음으로 시간변수를 더하여 여러개의 대각선 대각선 방향으로 움직이도록 합니다. *곱하게 될시 대각선들이 엄청나게 많이 생기니 주의! 다음으로 울타리 모양에 따라 발생하는 노이즈를 추가해봅시다. 이전에 만들었던 울타리 패턴을 복사해 가져옵니다. Glitch효과를 구현할때 만들었던 노이즈 패턴과 비슷하게 제작합니다. 우선 노이즈 텍스쳐샘플링을 불러와 타임값을 적용하여 움직이도록 해봅시다. *Append로 중간과정을 확인할수 있습니다. 노이즈 패턴을 복사해왔던 울타리패턴에 더해서 적용해줍니다. 하지만 현재 너무 노이즈 크기가 커 어색하니, 크기를 ..
최종목표 오늘목표 실습 울타리 틀을 제작하자. texC의 r,g 채널을 분리해 주기를 변경하여 sine적용을 해줍니다. 가로 세로 줄무늬가 만들어집니다. max를 이용하여 두 줄무늬를 합쳐주고, 만든 패턴을 알파값에 적용한후 선형보간하여(lerp) 울타리 패턴의 텍스쳐 틀을 제작합니다. 다음 포스팅에서는 대각선으로 움직이는 패턴을 제작해보겠습니다. 출처 한국산업기술대학교 게임공학과 이택희 교수님 고급그래픽스효과 강의 - Opacity mask, normal, electronic fence
최종목표 실습 먼저 텍스쳐 세장을 각각 준비해줍니다. (디폴트, 노말맵, 변위맵용) (unreal의 cobblestone 제공 이미지를 사용했습니다.) 노말맵 텍스쳐의 r채널입니다. 이를 노말맵에 연결해주고, 변위맵핑에도 사용할것입니다. 다음과 같이 r채널을 노말에 연결하고, 변위맵 r채널을 월드포지션오프셋에 연결했습니다. 위와같이 한곳으로만 쏠리는 현상이 발생합니다. (수정! normal map texture의 rgb채널을 넘겨주어야 합니다.) 상수값이 아닌 vectornormalws를 곱해주면 normal 방향에 따라 값이 곱해지는것을 볼수있습니다. 이제 변위맵핑의 값에 따라 실시간으로 값을 변경하여 꿀렁거리는 효과를 적용해봅시다. 변위맵 텍스쳐의 r채널의 값의 변화를 주어야하기 때문에 r채널의 실시..
오늘목표 특정 줄무니 적용 실습 노이즈가 더욱 날카롭게 변경(power로 거듭제곱을 시켜준다.) texC를 하나더 만들어 y축 기준으로 줄무늬를 만들기 위해 v좌표만 뽑아와 sine을 적용시키면 하나의 줄무늬가 생성된다. 이때 multiply로 sine의 최대값을 늘려주면 주기가 60 ~ -60으로 변경되어 여러 주기로 인한 여러개의 줄무늬가 생성된다. *이때 절대값을 적용시켜 증감요소를 없애주자(1 or 0) 이제 줄무늬를 텍스쳐에 적용시켜주자. lerp을 사용하여 그려질요소와 그려지지 않을 요소를 위해 줄무늬 패턴을 alpha값에 넣어주고, 두개의 텍스쳐를 합친 벡터를 v(y축)에 연결하여 v값에 가까울수록 이미지가 그려지고, 가로줄무늬이기 때문에 특정 컬러를 u(x축)에 연결하여 u값에 가까울수록 ..
오늘목표 움직이는 노이즈 적용하기 실습 노이즈 텍스쳐의 r채널을 분리하여 각 texC에 연결해준다. *이때 노이즈의 오차범위를 줄이기 위해 0.1를 곱해준다. -> 하지만 노이즈가 매우 지저분하고 난잡하다. 이때 u는 고정시키고 세로축(v)으로만 값을 받아와 적용시켜보자. 이전은 u,v모두 영향이 있는 texC가 적용되고 있었는데 (0,v)벡터를 만들어 리소스에 적용시켜주니 x값은 0으로 고정되었다. 다음으로 유동적으로 노이즈가 x축방향으로 움직이도록 해보자 time을 u좌표 위치에 넣어주었다. 이때 초단위는 너무 빠르기 때문에 0.1배율로 줄여주고, frac로 소수점부분을 출력하였다. + 텍스쳐에 최종적으로 더할 texC의 y축도 고정될것이기 때문에 0으로 변경하여 전달해주었다. 출처 한국산업기술대학교..
최종목표 오늘목표 각 rgb 색을 약간의 오차가 생기도록 분리한다. 실습 Step1 TexC를 Add를 사용하여 u,v좌표 위치의 오차를 적용한다. Step3 Append를 사용하여 각 벡터를 더해줘 결과값을 만들어낸다. 출처 한국산업기술대학교 게임공학과 이택희 교수님 고급그래픽스효과 강의 - texture coordinate 활용
오늘 목표 최종 uv 좌표 사진 위와 같이 u좌표 기준으로 절반씩 영역을 분리해서 좌표비율에 맞게 곱으로 비율을 v좌표 비율을 맞춰준뒤 각각 벡터를 더해주면 된다. 실습 Step1 가로 기준으로 2개의 텍스쳐를 그리기 위해 u좌표 비율을 2배 늘려준다. 우선 왼쪽의 좌표 비율을 맞춰주어 왼쪽 영역의 그림을 완성시켰다. Step2 왼쪽 영역을 따로 분리해내는 과정이다. u좌표 기준으로 영역을 분리해 내면되기 때문에 component mask(r)을 분리해 sine함수로 영역의 반절만 구분해냈다. sine값은 서서히 증감이 일어나기 때문에 ceil(올림)으로 값을 0,1로 변경해주었다. Step3 왼쪽영역의 v기준을 0.5를 곱하여 변경해주고, u,v의 u비율은 동일하기 때문에 v정보를 append를 사용하..
스마트 포인터 C++에서 동적할당시 반드시 메모리 해제를 해주어야, 메모리 릭이 나지 않습니다. 이때 스마트포인터는 객체 사용이 끝날시, 자동으로 메모리를 해제시켜줍니다. STL의 std::unique_ptr 코드 분석 스마트포인터는 해당객체의 소유권을 갖고 있을때만, 해당 객체를 삭제할수있다. 즉 복사가 일어난 객체의 포인터를 갖고있을경우, 정상적인 메모리해제가 일어나지 않을수있다. 따라서 복사생성자와, 복사대입연산자가 삭제되어있다. // CLASS TEMPLATE unique_ptr SCALAR template class unique_ptr { // non-copyable pointer to an object public: using pointer = typename _Get_deleter_point..