하루 하루 42' 2019/09/10 04:25 by cagetu

42번째 생일이었다.

생일 전으로 업무적으로나 일상 생활에서 이상하게 정신적으로 힘들었다. 특별히 더 힘들어지거나 한 것은 없는데 왜일까?

나이가 들어가면서의 불안함과 조급함. 그럼에 따라 "다른 사람은 저렇게 준비해 놓은게 많은데, 나는 뭐하고 있지?"라는 생각...

문득 이건 그냥 전부 다른 사람과의 비교 때문에 비록된 스트레스였을 뿐이다. 경쟁 속에서 나보다 앞으로 나가고 있는 사람들을 보면서의 조급함 부러움 등이 결국 내가 나를 괴롭히고 있었다. 나도 모르게 다른 개발팀이나 사람들과 비교하고 있는 내 모습... 사람들과 어울려서 가십거리를 나누고 있는 모습들... 

내가 충만하면 된다! 다른 사람이 무슨 상관이냐! 내 길을 따라가면 된다! 생일날 얻게된 당연하지만 어려운 말을 가지고 가야겠다. 당분간 다른 사람의 이야기는 듣지고 말하지도 않아야겠다. 내 일이나 잘 해야 하는데...

... 아무생각없이 흘러가는데로 휩쓸리지 말고, 적어도 내가 가고 싶은 길로는 가자! 남 탓하지 말고....

정신차리자

개발 노트 Shader System II 2019/08/26 18:40 by cagetu

Shader System에 소개한데로 Spir-V로 컴파일에 성공했다고 하면 그 다음에는 Spir-V 파일을 읽어서 렌더러에서 사용할 수 있도록 해야 한다. 

여기서 문제는 Spir-V 안에 있는 내용을 알지 못한다는 것이다. 쉽게 예를 들어서, DXEffect를 이용해서 셰이더 파일을 작성하면, HLSL Reflection이 가능하여 변수, 함수 등의 정보를 알아올 수 있는데, 기본적으로는 불가능하다는 점이다. 

그래서 여기에 Spirv-Cross 라는 라이브러리가 필요해지게 된다. 이 라이브러리는 Spirv를 파싱해서 Reflection 정보를 만들어준다.

런타임에서 정보가 셰이더 변수를 C++에서 연결하기 위해서 필요한 정보를 만들 때에는 이런 것을 사용할 필요가 있다. 그게 아니라면 별도의 셰이더 파일과 변수를 가지고 있을 수 있는 셰이더 파일 시스템을 구현해서 정보를 연결할 수 있는 것도 방법이 될 수 있다. 

현재는 Spirv-Cross를 이용해보려고 한다. 런타임에서 파싱하는 비용이 다소 아깝기는 한데, 추후에는 별도의 컴파일된 셰이더 결과물을 만든다고 가정하고 "SPRIV -> GAME" 파이프라인이 아니라 "SPIRV -> Editor -> (머터리얼 형태) -> Game" 형태가 되어야 할 것 같다. 아마도 언리얼에서 머터리얼 파일 형태로 만들어져야 할 것 같다. 최종적으로 이렇게 된다면, "ShaderC 나 Spirv-Cross / dxc.exe"도 Editor에서 머터리얼을 만들 때 사용될 수 있도록 분리해도 될 것이다. 

현재는 런타임에서 "셰이더 컴파일 -> 셰이더 리플렉션 -> C++ 바인딩"을 할 수 있도록 작업하고, 오프라인으로 "셰이더 컴파일 -> 셰이더 리플렉션된 머터리얼 생성" 후 런타임에서는 "머터리얼 -> C++ 바인딩"이 될 수 있도록 하는 것이 목표이다. 아직은 Editor를 만들기에는 기반이 정리가 안되어서 살짝 고민 중... 그래도 이런 것은 언리얼엔진 경험이 도움이 되네...

가보자!! 고고~



개발 노트 Shader System 2019/08/21 02:02 by cagetu

vulkan으로 swapchain -> commandbuffer -> framebuffer 생성해서 실행하는 것까지는 성공했다.
(이상하다... 여기까지는 저번에 해봤는데 ;;; 여전히 어렵다 ㅡㅡ)


셰이더 시스템


이제 쉐이더를 붙여서 삼각형을 그리는 작업을 시작하려고 한다.

이전에 Shader Compiler를 작업해봤는데 ShaderC를 이용해서 "GLSL -> SPIR-V" 로 변환하는 형태로 작업을 했었는데, 이후 SMOL-V: like Vulkan/Khronos SPIR-V 내용도 나왔었다. 

이후 "DirectX Shader Compiler"가 마이크로소프트에서 만든 코드를 이용해서 "HLSL -> SPIR-V"로 변환해서 사용하는 것이 더 알려진 듯 하다. 설명과 사용법은 "그냥 그런 블로그:DXC"를 보면 더 자세히 소개가 되어 있다.

shaderc의 경우에는 빌드하면 라이브러리와 실행파일 둘 다 결과를 만들어내기 때문에, 렌더러에 붙여서 런타임에서 컴파일 할 수 있도록 처리할 수도 있고, 별도 프로세스로 컴파일 할 수도 있다. dxc 의 경우에는 dxc.exe를 통해서 컴파일하기 때문에 별도 프로세스로 컴파일하도록 사용하는 방향이 맞는 듯 하다.

UE4 처럼 게임 프리뷰에서 런타임에 컴파일 되거나, 에디터 및 쿠킹 시에 오프라인으로 컴파일 될 수 있도록 하는 방법으로 별도 프로세스를 돌리는 식으로 구현해볼 예정이다.

(일단 컴파일부터 험난하군요 ;;;)




개발 노트 시그래프 2019 2019/08/09 10:11 by cagetu

좋은 기회를 제공해주어서 시그래프 2019 행사를 잘 다녀왔다.

발표자료는 아래 링크를 참고하면 된다. (Real Time Rendering Course만 듣고 왔음)



이번에 가장 기대했던 것은 사실 "너티독" 회사 방문이었다. 정말 운이 좋게 도움을 주셔서 회사 내부를 방문해서 구경할 수 있었다. 정말 어렸을 때부터 "잭엔 덱스터"부터 팬이었는데 개발실을 구경할 수 있었다. 

아~주 짧은 일정이었고, 특별히 많이 본 것은 아니지만 전반기를 넘어가는 내 개발 경력에서 큰 경험이나 기점이 될 것 같은 기분이다.





하루 하루 in LA 2019/07/30 15:01 by cagetu

#Siggraph2019에 운이 좋게 참관하게 될 기회를 회사에서 줘서, 아주 아주 짧은 일정으로 (3일 ㅡㅡ;) 미국 땅을 밟아 보게 되었다. 처음 이미지는 엄청나게 큰 이태원?? 같은 느낌이고, 지저분하고 노숙자도 많아서 이게 뭐람?! 했는데... 2일 동안 여기 저기 돌아도 다니고, 다운타운 등을 계속 걸어서 다녀보면서 되게 자유분방함과 여유(?) 같은 것들이 느껴졌다. 

여기에서는 본인들이 하고 싶어하는 것을 하면서 사는구나! 부러워졌다. 그리고, 나도 여기 살면 이렇게 좀 더 자유로워 질 수 있을까? 라는 생각으로 이어졌다. 한국에서는 뭔가 항상 쫓기는 것 같고, 맨날 일에 치이고, 눈치보면서 살았는데... 여기는 그냥 본인들이 좋아하는 모습을 그대로 보여주고, 사람들이 그 모습을 그대로 받아들여주는 느낌이다. 뭐랄까? 우리나라보다 한 발 더 앞으로 나가 있다고 느껴진다고 해야하나?

이래서 다들 해외로 가고 싶어하는 것이 아닐까? 라는 생각이 들었다. 내가 아니라, 내 아이는 이렇게 자유 분방하게 자라면 재밌겠다 나른 생각이 저절로 들었다. 그래서 교육 때문에 해외를 가려고 하는 것인지 이해가 되더라. (물론 현실은 나도 모른다.)

내일은 아무도 모르는 것이다. 영어 공부를 더 잘 준비해야 할 것 같은 생각이 더 강해졌다. 이 곳을 또 와보고 싶다는 생각도 들었다. 내 아이들에게 이 문화를 경험해주고 싶다는 생각도 들었다. 

그 전에 내가 좀 바껴야 할 것 같다. 시간은 짧지만, 많이 배우고 간다. 

(다음에는 꼭 NBA를 보고 말테다!)

1 2 3 4 5 6 7 8 9 10 다음



메모장

내가 먼 훗날에 이 글들을 보았을 때, 좋은 추억이 될 수 있기를...

나를 위해... 나에게 쓰는...

msn: cagetu@hotmail.com
mail: cagetu79@gmail.com
twitter: twitter.com/cagetu
facebook: facebook.com/cagetu