Computer12 만들고 있는 것 정리 https://github.com/hydrogendeuteride/QuaternionEngine GitHub - hydrogendeuteride/QuaternionEngine: Multipurpose Vulkan render engineMultipurpose Vulkan render engine. Contribute to hydrogendeuteride/QuaternionEngine development by creating an account on GitHub.github.com블로그를 열심히 본 사람이라면 대충 뭘 만드는진 알 것이라 생각함. C++과 Vulkan으로 렌더링 엔진을 만드는 데 성공했고 이를 바탕으로 게임을 만들고 있음.게임은 우주 관련이고 앞서 말했듯이 블로그를 조금이라도 봤다면 게임.. 2026. 2. 28. RTX ON RTX ON vs RTX off Vulkan 게임 엔진을 만들고 있는데 CSM 그림자맵이 버그가 더럽게 많고 일반 섀도우맵은 쓸 수 있는게 아닌것 같아서 클립맵 그림자에 레이 트레이싱 그림자를 옵션으로 도입했음. VK_KHR_RAY_QUERY를 사용해서 만들었는데 먼 거리까지 품질 하락 없이 좋은 그림자가 만들어졌고 이거 그대로 쓸 생각임. Radeon 680m 내장그래픽도 레이 트레이싱이 되는지는 몰랐음. 요즘 최신 고급형 내장들은 거의 RT를 지원하더라고. 렌더 엔진이 어느정도 완성된다면 그때부터는 할 수 있는것의 폭이 수직 상승하는데 올해 12월 전까지는 내가 하고있는 거 하면서 남는 시간에 IBL, 다중광원, SSR, SSAO, AA등을 도입할 수 있을것 같고(GPT-5야 고맙다) 그때부터는 뭘 .. 2025. 10. 28. 나만의 LLM 만들기-예고편 갑자기 1년전에 만들어놓은 RNN, LSTM, 트랜스포머가 생각나서 좀 패치한 후 학습 돌려보고 있음. 작년에 학교 자연어처리 수업 과제하면서 만든 거인데 재밌어서 계속 유지보수 중임. PyTorch없이 Numpy와 CuPy만으로 만들었고 오늘 갑자기 생각나서 간단히 GPT Codex로 최적화(GPU 메모리 아낄 수 있게 로직 개선, 텐서 코어 사용하게 개선(RTX 3000이상 GPU에서는 속도 2배), FP32대신 FP16도 사용하게 개선 등등을 해봤는데 여전히 1 epoch에 4시간 걸리지만 괜찮은듯? 물론 학습은 적당히 1 epoch만 보고싶지만 오늘은 이것도 다 못할것같고... Vast.ai에서 RTX5090 좀 빌려서 하고 있는데 107TFlops로 단일 GPU중에서는 가장 빨라서 맡겨놓고 있는.. 2025. 10. 6. 블랙홀 시뮬레이션 - 2. 구현 1편 블랙홀 시뮬레이션 - 1. 일반상대론 설명블랙홀 시뮬레이션을 만들었음. 작년에 학교에서 일반상대론을 배웠는데 이걸 가지고 뭔가 재밌는 짓을 하고 싶었음. 슈바르츠실트 블랙홀 정도면 쉽게 시뮬레이션을 만들 수 있을 것 같아 이ellipsoid.tistory.com그럼 이제 어떻게 구현했는지 알아보자. 레이 마칭레이 마칭은 카메라 앞에 스크린이 있다고 가정할 때, 카메라와 스크린 위의 점을 잇는 광선을 만들어서 물체에 부딫힐 때 까지 전진시키는 방법임. 게임에서 접할 수 있는 레이트레이싱과 좀 비슷한 기술인데, 레이 트레이싱은 광선-물체의 부딫힘을 이용하지만, 레이 마칭은 주변 물체와의 거리를 이용해서 광선을 전진시키며 물체와 부딫힐 때 까지 조금씩 전진시키는 방법임.저렇게 써 놓으면 아무도 이해 못하.. 2024. 8. 23. 최척화된 Barnes-Hut 시뮬레이션 쿼드트리 멀티스레딩, Cache locality를 최대한 지킨 코드를 만들었다. 아직 배열 기반 스택을 사용하진 않아서 완벽하진 않지만, 조금만 손보면 CUDA에도 거의 그대로 이식 가능할 정도로 만들었다. 3차원 모델을 빨리 만들고 다음 주제인 SPH 시뮬레이션으로 넘어가야겠다. 만드는 데 최적화 생각을 상당히 많이 해야하기도 했고 어려운 알고리즘이 많이 사용되기도 했고 학교다니느라 시간이 없어서 오래 걸렸음. 2023. 12. 28. 배열 쿼드트리 #include #include #include const int NULL_INDEX = -1; constexpr int MAX_NODES = 1000; constexpr int MAX_PARTICLES = 1000; float nodeX[MAX_NODES]; float nodeY[MAX_NODES]; float nodeWidth[MAX_NODES]; float nodeHeight[MAX_NODES]; int nodeParticleIndex[MAX_NODES]; int nodeChildren[MAX_NODES][4]; float particleX[MAX_PARTICLES]; float particleY[MAX_PARTICLES]; float particleMass[MAX_PARTICLES]; int no.. 2023. 9. 16. 하스켈 콘웨이의 생명 게임 https://github.com/hydrogendeuteride/HaskellGameOfLife GitHub - hydrogendeuteride/HaskellGameOfLife: conway`s game of life written in haskell conway`s game of life written in haskell. Contribute to hydrogendeuteride/HaskellGameOfLife development by creating an account on GitHub. github.com 하스켈 연습용으로 한번 만들어봄. 만들어보니까 알겠는데 하스켈은 리스트 탐색이 양날의 검인듯. 벡터나 셋이 있긴 해서 다행이지만, 리스트만으로는 시간 복잡도가 심하게 늘어나는 경우가 있음. 벡.. 2022. 2. 26. 쿼드트리 Barnes-Hut 천체 시뮬레이션 만들고 있는데 필요해서 만들어봄. 이진 트리하고 비슷하게 만들면 되는데 이진 트리보다 구분해야 하는 차원의 개수가 하나 늘어서 만들 때 꼬일 수 있음. 2021. 11. 7. 고속 푸리에 변환 이산 푸리에 변환 이산 푸리에 변환의 C++ 코드이다. #define M_PI 3.14159265358979323846 void DFT(const std::vector &input, std::vector > &output) { int N = input.size(); std::complex img(0.0, 1.0); for (int i = 0; i 1) { n = k; k >>= 1; phiT = phiT * phiT; T = 1.0L; for (int i = 0; i < k; ++i) { for (int a = i; a < N; a += n) { int b = a + k; std::complex t = x.at(a) - x.at(b); x.at(a) += x.at(b); x.at(b) = t * T; }.. 2021. 1. 28. 이전 1 2 다음