Computer Graphics/ShaderPixel

ShaderPixel - 15. 마치며

surkim 2024. 11. 24. 15:44

이번 과제를 진행하면서 블로그에 과정을 기록한 시간이 굉장히 뜻깊었다.

사실 처음부터 블로그를 쓰며 과제를 진행한 이유는, 그때그때 어떤 고민을 했는지, 그리고 그 과정을 통해 무엇을 배웠는지를 기록하기 위해서였다.

 

하지만 완성된 기능이나 결과물이 나올 때마다 글을 썼기 때문에, 내가 실패했던 경험이나 과정에서 했던 고민들보다는 어떤 것을 어떻게 구현했는지에만 초점이 맞춰진 글이 되어버렸다. 이런 점이 많이 아쉽다.

 

앞으로도 과제를 하며 블로그를 계속 쓸 예정인데, '무엇을 구현했다'보다는 '어떤 점을 고민했고, 왜 그런 결정을 내렸는가'에 초점을 맞춰 기록하려고 한다. 그래야 과제 진행 과정이 더 풍부해지고, 나중에 돌아봤을 때도 많은 것을 얻을 수 있을 것 같다.

 

또 한 가지 느낀 점은, 내가 글을 조리 있게 잘 쓰는 편이 아니라 GPT의 도움을 많이 받는데, 그러다 보니 내 글에서 나만의 색깔이 빠지는 느낌이 들기도 했다. 앞으로는 도움을 받더라도 내 생각과 표현을 우선으로 하고, 필요할 때만 보완하는 방식으로 의존도를 줄여보려고 한다.

 

어쨌든 이번 과제를 마무리하며, 꽤 큰 성취를 이뤘다는 뿌듯함이 든다. 앞으로도 부족한 부분을 계속 보완하고, 더 발전할 수 있도록 노력하겠다.

색 구슬 (bead)

사실상 raymarch 입문작이고 구현하기 제일 어려웠다. 뚫어서 다른 물체도 봐야하는데 어떻게 구현해야 할지 많은 고민을 했었던거같다. 첫 구현과 동시에 최적화를 고민했었는데 돌아보면 최적화는 나중에 생각해도 좋았을 법 했다. raymarch도 처음인데 volumetric raymarch도 같이 생각해야되서 과제중 제일 시간을 많이 쓴 오브젝트.. 하지만 사람들에게 보여주면 가장 관심이 없다.. ㅎ

구름 (cloud)

색구슬그리고 자신감에 차서 구름을 그렸는데 이것도 어려워서 중간에 과제를 포기해야하나 싶었다. 나에게 noise와 fbm의 매력을 알게해준 오브젝트다. 이걸 다그리고 나니깐 뭔가 큰산을 넘었다는 느낌이 들었고 이 이후부터는 생각보다 더 속도가 붙었었다.

만델박스 (mandel box)

과제에 있어 3번째 큰 산이었다. 이거 그릴 때 밤샘 했었는데 결국 못그리고 다음날 와서 한시간만에 그려버려 잠의 중요성을 다시한번 알려주게 한 작품.. 나의 프렉탈 입문기라고 할 수 있겠다. 수식이 어떻게 구성되어있어 이런 그림이 그려지는지 느낌만 알고 결국 완벽히 이해를 못했다. 찾아보니 이건 의도를 갖고 구현했다기보다 '발견'이라고 써져있어 스스로를 위로했었다. 이거 이후의 오브젝트는 거의 하루에 두개씩 그린 거 같다.

만델벌브 (mandel bulb)

엄청 복잡하고 괴상하고 사람들의 이목을 잘 끌었지만 사실상 쉽게 구현한 오브젝트. 이거 그린 후 부터 프레임 방어 따위 생각하지 않았다.

멩거 스펀지 (menger sponge)

ifs 구조를 선택하라고 했을 때 가장 유명한거 골랐다. 빛이나 그림자 다 안구현해 줘도 됐는데 굳이 추가해서 이쁘게 보이게 했다.

다른 세상 (another world)

과제를 읽자마자 이건 쉽겠다 생각했었는데 막상 구현해놓고 봤을 때 이상하게 보여서 그때부터 이리저리 돌아다니며 창문을 봤었다. 카메라 시점에 대해 좀 생각을 했었었던 오브젝트. 오브젝트 모델 귀여운거 구하는데 시간 좀 썼는데.. 안알아봐준다..

칼레이도스코프 (kaleido scope)

shader toy에서 이쁘게 보이는 2d 프렉탈 골라서 그려줬다. 2d에 그리는 방식은 shader toy와 똑같으니 뇌빼고 그렸다.

물 (water block)

이거는 혹시나 다음 플젝에서 게임엔진 만들 때 물을 그린다면 이렇게 그리지 않을까 싶어 선택했는데 생각보다 간단했고 물표면이 noise라 흐르는 물에는 적합하지 않겠다 싶었다. 물에 일어나는 파동만 알 수 있다면 색 계산인 굴절과 반사는 동일 할테니 그래도 얻어갈 거는 있었던 오브젝트