์ธก์ ๋ ํ์๊ณ โ Vulkan API๋ก ๋ฐ๋ฐ๋ฅ๋ถํฐ ๋ง๋ ์ค์๊ฐ ์๋ฎฌ๋ ์ดํฐ
Ephemeris(์ฒ์ฒด๋ ฅ)๋ ์ฒ์ฒด๊ฐ ์๊ฐ๋ง๋ค ์ค์ ๋ก ์ด๋์ ์์๋์ง ๊ธฐ๋กํ ํ์ ๋๋ค. ์ด ํ๋ก์ ํธ์ ์์น์ด ๊ทธ ๋จ์ด์ ๋ด๊ฒจ ์์ต๋๋ค โ ๋ณด๊ธฐ ์ข์ ๊ทธ๋ฆผ์ด ์๋๋ผ ์ฌ์ค์ ๋ง๋ ๊ทธ๋ฆผ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ์งํ ์์ฒ ์ ํ์ฌ์ ์ด ์ค์ ๋ก ์ธก์ ํ ๊ณ ๋ ์๋ฃ(LOLA, MOLA, MESSENGER, Magellan, ETOPO)์์ ๊ตฝ์ต๋๋ค.
- ๋ณํ๋์ Gaia๊ฐ ๊ด์ธกํ ์ค์ ๋ณ ์์น๋ฅผ ์ฐ๊ณ , ๊ฐ์๋ ์ค์ ํ๊ณ๋ฑ๊ธ์ ๋ง์ถฅ๋๋ค.
- ํด์์ฑ์ ํํ ์๋ ค์ง ์งํ ํ๋์ด ์๋๋ผ 2024๋ ์ ์ ์ ๋ ์ค์ ์์ ์๋๋ค.
- ์ํ์ฑ๋๋ ์ค์ ๊ถค๋ ์์ ๋ถํฌ์ ์ถฉ๋ ํํธ์ ํฌ๊ธฐ ๋ถํฌ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
- ๊ณ์ ์ถ์ํ๋ฉด ํ์๊ณ๋ฅผ ๋ฒ์ด๋ ๋ณผ๋ฅจ ๋ ์ด๋ง์นญ์ผ๋ก ๊ทธ๋ฆฐ ์ฐ๋ฆฌ ์ํ๊ฐ ๋๋ฌ๋ฉ๋๋ค. ๊ทธ ์์ ๊ตฌ์์ฑ๋จ 157๊ฐ์ ๋ง์ ค๋์ด์ ๊ด์ธก ์นดํ๋ก๊ทธ์ ์ค์ ์์น์ ์์ต๋๋ค.
์์ฉ ์์ง์ ์ฐ์ง ์๊ณ ๋๋ฐ์ด์ค ๊ด๋ฆฌ, ์ค์์ฒด์ธ, ๋ ๋ ํจ์ค๊น์ง ์ง์ ๊ตฌํํ์ต๋๋ค.
๊ณ์ ์ถ์ํ๋ฉด ๋๋ฌํ๋ ์ํ ์ ๊ฒฝ์ ๋๋ค. ํ๋ฉด ์ด๋ฏธ์ง๊ฐ ์๋๋ผ 3์ฐจ์ ๋ฐ๋์ฅ์ ๋ ์ด๋ง์นญํ ๊ฒฐ๊ณผ๋ผ ์ด๋ ๊ฐ๋์์ ๋ด๋ ์ฑ๋ฆฝํฉ๋๋ค. ์๋ฐ ์์ ์์ ๊ณ ๋ฆฌ ํ์์ด ํ์ โ ์ํ ์ค์ฌ์์ 8.2 kpc ๋จ์ด์ง ์๋ฆฌ์ ๋๋ค.
| ์ต์ | ๊ถ์ฅ | |
|---|---|---|
| GPU VRAM | 3 GB | 6 GB ์ด์ |
| GPU | Vulkan 1.2 ์ง์ | โ |
| ์ ์ฅ ๊ณต๊ฐ | ์ฝ 4 GB | โ |
| RAM | 8 GB | 16 GB |
์ ์ฅ ๊ณต๊ฐ์ ํด๋ก ์ 1.7 GB(์์
ํธ๋ฆฌ 0.9 GB + git ํ์คํ ๋ฆฌ 0.8 GB), Release์์ ๋ฐ๋
ํ
์ค์ฒ์ 0.85 GB, ๋น๋ ์ฐ์ถ๋ฌผ๊ณผ ์์กด์ฑ ์์ค์ 1 GB ๋จ์ง์
๋๋ค. ํ
์ค์ฒ๊ฐ ์ด๋ฏธ ์์ถ๋
.dds๋ผ git์ด ๋ ์ค์ด์ง ๋ชปํฉ๋๋ค. ํ์คํ ๋ฆฌ๊ฐ ํ์ ์๋ค๋ฉด git clone --depth 1๋ก
๋ ์๋ ์ ์์ต๋๋ค.
VRAM์ด ์ด ์ ๋ ํ์ํ ์ด์ ๋ ํ ์ค์ฒ๊ฐ 1.6 GiB์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ง๊ตฌ ๋ํจ์ฆ๊ฐ 16384ร8192, ๋ชฉ์ฑ์ด 14400ร7200์ด๊ณ ๋๋ถ๋ถ BC ์์ถ๋์ด ์๋๋ฐ๋ ๊ทธ๋ ์ต๋๋ค.
๋๋จธ์ง๋ ๋ ๋ ํ๊ฒ์ด ์ฐจ์งํ๋ฉฐ, ์ค์ ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค:
| ๋ ๋ ํด์๋ | MSAA 8ร | MSAA 2ร |
|---|---|---|
| 1280ร720 | 141 MiB | 35 MiB |
| 1920ร1080 | 316 MiB | 79 MiB |
| 3200ร1800 (1600ร900 ร ๋ ๋ ์ค์ผ์ผ 2) | 879 MiB | 220 MiB |
VRAM์ด ๋น ๋ฏํ๋ฉด Anti-aliasing์ ๋จผ์ ๋ฎ์ถ์ธ์. ์ด ํ๋ก์ ํธ์์๋ MSAA๊ฐ ํ๋ ์ ์๊ฐ์ ๊ฑฐ์ ์ ๋จน์ง๋ง ๋ ๋ ํ๊ฒ์ ์ํ ์์ ์ ๋น๋กํด ์ปค์ง๋๋ค.
GPU๊ฐ ๋ฐ๋์ ์ง์ํด์ผ ํ๋ ๊ฒ:
textureCompressionBCโ BC7(์์), BC5(๋ ธ๋ง๋งต), BC6H(HDR ํ๋). 2012๋ ์ดํ ๋ฐ์คํฌํฑ GPU๋ผ๋ฉด ์ ๋ถ ๋ฉ๋๋ค.maxImageDimension2D โฅ 16384โ ์ง๊ตฌ ๋ํจ์ฆ๊ฐ 16384ร8192์ ๋๋ค. ์ค๋๋ ๋ด์ฅ ๊ทธ๋ํฝ์ 8192์์ ๋งํ๊ธฐ๋ ํฉ๋๋ค.samplerAnisotropy
| OS | Windows (windows.h๋ฅผ ์๋๋ค. ๋ฆฌ๋
์ค๋ ๋ฏธ๊ฒ์ฆ) |
| ์ปดํ์ผ๋ฌ | C++17 (MSVC๋ก ๊ฒ์ฆ) |
| CMake | 3.15 ์ด์ |
| Vulkan SDK | ํ์ โ ์
ฐ์ด๋ ์ปดํ์ผ์ glslc๊ฐ ํ์ํฉ๋๋ค |
Vulkan SDK๋ ์คํ์ด ์๋๋ผ ๋น๋์ ํ์ํฉ๋๋ค. LunarG์์
๋ฐ์ ์ค์นํ๋ฉด VULKAN_SDK ํ๊ฒฝ๋ณ์๊ฐ ์๋์ผ๋ก ์กํ๋๋ค.
์ฌ์ ์ ์ค๋นํ ๊ฒ์ Vulkan SDK ์ค์น ํ๋์ ๋๋ค. GLFW, GLM, Dear ImGui๋ CMake๊ฐ ์์์ ๋ด๋ ค๋ฐ์ต๋๋ค.
git clone https://github.com/Youl-AI/Ephemeris.git
cd Ephemeris
# 1. ๋์ฉ๋ ํ
์ค์ฒ ๋ฐ๊ธฐ (ํ ๋ฒ๋ง)
powershell -ExecutionPolicy Bypass -File scripts\fetch_textures.ps1
# 2. ๋น๋
cmake -S . -B build
cmake --build build --config Release์
ฐ์ด๋๋ ๋น๋๊ฐ ํจ๊ป ์ปดํ์ผํฉ๋๋ค(glslc โ shaders/*.spv). ๋ฐ๋ก ํ ์ผ์ ์์ต๋๋ค.
1๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๋ฉด ์คํํ ๋ ํ ์ค์ฒ๋ฅผ ๋ชป ์ฐพ์ต๋๋ค. ํ ์ค์ฒ ๋๋ถ๋ถ์ ์ ์ฅ์ ์์ ์์ง๋ง, 100 MiB๋ฅผ ๋๋ ์ฌ์ฏ ๊ฐ๋ GitHub์ด ๊ฑฐ๋ถํด์ Release์ ์ฒจ๋ถํด ๋ฐฐํฌํฉ๋๋ค(์ง๊ตฌ ๋ํจ์ฆยท๊ตฌ๋ฆยท์ผ๊ฐ, ๋ชฉ์ฑ, ํ๋ ๋ ์ธต โ ํฉ๊ณ ์ฝ 845 MB). ์คํฌ๋ฆฝํธ๋ ์ด๋ฏธ ๋ฐ์ ํ์ผ์ ๊ฑด๋๋ฐ๋ฏ๋ก ์ค๊ฐ์ ๋๊ฒผ์ผ๋ฉด ๋ค์ ์คํํ๋ฉด ๋ฉ๋๋ค.
build\Release\Ephemeris.exe์ ์ฅ์ ๋ฃจํธ์์ ์คํํด์ผ ํฉ๋๋ค. ์คํ ํ์ผ์ด
textures/์shaders/๋ฅผ ์๋ ๊ฒฝ๋ก๋ก ์ฐพ์ต๋๋ค. ๋ค๋ฅธ ๊ณณ์ ๋๋ ค๋ฉด ๋ ํด๋๋ฅผ ์คํ ํ์ผ ์์ ํจ๊ป ๋ณต์ฌํ์ธ์.
์ฒซ ์คํ์์ ํ ์ค์ฒ 1.6 GiB๋ฅผ ์ฌ๋ฆฌ๋ฏ๋ก ๋ก๋ฉ์ด ์ข ๊ฑธ๋ฆฝ๋๋ค.
itch.io์์ zip์ผ๋ก ๋ฐ์ผ์๋ฉด ๋ฉ๋๋ค.
๋น๋๋ ์คํ ํ์ผ๊ณผ ํ
์ค์ฒ๊ฐ ์ ๋ถ ๋ค์ด ์์ด์, ์์ถ์ ํ๊ณ Ephemeris.exe๋ฅผ ์คํํ๋ฉด
๋์
๋๋ค โ Vulkan SDK ์ค์น๋, ํ
์ค์ฒ ๋ด๋ ค๋ฐ๊ธฐ๋ ํ์ ์์ต๋๋ค.
(ํด๋ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก ๋์ธ์. ์์ ๊ฐ์ ์ด์ ๋ก ์๋ ๊ฒฝ๋ก๋ฅผ ์๋๋ค.)
| ๋ง์ฐ์ค ๋๋๊ทธ | ์์ ํ์ |
| ๋ง์ฐ์ค ํ | ํ๋ยท์ถ์ (๋ ๋ชป ๋ค๊ฐ๊ฐ๋ฉด ์์ผ๊ฐ์ด 2ยฐ๊น์ง ์ข์์ง๋๋ค) |
| ๋ง์ฐ์ค ํ (๊ณ์ ์ถ์) | ์ฐ์ฃผ ์ค โ ํ์๊ณ ๋ฐ์ผ๋ก ๋๊ฐ ์ํ๊น์ง ๋ฌผ๋ฌ๋ฉ๋๋ค (์๋ ์ฐธ์กฐ) |
| ์ฒ์ฒด ํด๋ฆญ | ์ ํ โ ์ ๋ณด ํจ๋ ํ์ |
| ์ฒ์ฒด ๋๋ธํด๋ฆญ | ๊ทธ ์ฒ์ฒด๋ก ์นด๋ฉ๋ผ ๊ณ ์ |
Space |
์๊ฐ ์ ์ง / ์ฌ๊ฐ |
| ์ฐ์๋จ ํฑ๋๋ฐํด | ์ค์ |
์ค์ ํญ๋ชฉ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ๋ฌด์จ ์ผ์ ํ๋์ง ์ค๋ช ์ด ๋น๋๋ค.
Real Scale โ ์ฒ์ฒด๋ฅผ ์ค์ ๊ฑฐ๋ฆฌ์ ํฌ๊ธฐ(1 AU = 500 ์ ๋)๋ก ๋ฐฐ์นํฉ๋๋ค. ํ์๊ณ๋ ๋๋ถ๋ถ ๋น์ด ์์ด์ ํ์ฑ์ด ์ ์ด ๋ฉ๋๋ค. ๊ทธ ํ์ ํจ์ด ์ฌ์ค์ ๋๋ค.
Real Stars โ ํ๋์ ๋งจ๋์ผ๋ก ๋ณด์ด๋ ๋๋ก ๋ฐ๊ฟ๋๋ค. ์ ์ฒ ์ฝ 9,100๊ฐ(6.5๋ฑ๊ธ), ํฌ๋ฏธํ ํ์ ์ํ์, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ง์ ์์. ๋ณ์ ๋ฐ์ง์์ ๋๊ธฐ๋ฅผ ํต๊ณผํ ๋ ์๊ธฐ๋ ํ์์ด๋ผ ์ง๊ณต์์๋ ๋ณ์ด ๋ฏธ๋๋ ํ์ง ์์ต๋๋ค. ๋๋ฉด ์ฅ๋ ธ์ถ ์ฌ์ง์ฒ๋ผ ๋ณ ์๋ฐฑ๋ง ๊ฐ์ ๋ฐ๊ณ ํ๋ คํ ์ํ์๊ฐ ๋ฉ๋๋ค. Real Scale๊ณผ๋ ๋ ๋ฆฝ์ ๋๋ค โ ์์ถ๋ ํ์๊ณ๋ฅผ ๋ณด๋ฉด์๋ ์ง์ง ํ๋์ ๋ณผ ์ ์์ต๋๋ค.
๊ณ์ ์ถ์ํ๋ฉด ํ์๊ณ๊ฐ ์ ์ผ๋ก ์ ํ๊ณ ์ฐ๋ฆฌ ์ํ ์ ์ฒด๊ฐ ๋๋ฌ๋ฉ๋๋ค. ๋๊ธฐ๋ ์ฅ๋ฉด ์ ํ์ด
์๋๋ผ ํ๋์ ์ฐ์๋ ์นด๋ฉ๋ผ ์ด๋์ด๋ฉฐ, ํ์๊ณยท๋ฐฐ๊ฒฝ ํ๋ยท์ํ์ ๊ฐ์ค์น๊ฐ ์งํ๋ ํ๋
(galacticLerp)์์ ํ์๋์ด ์๋ก ๊ฒน์ณ ์ง๋๊ฐ๋๋ค.
์ํ๋ ํ ์ค์ฒ๊ฐ ์๋๋๋ค. 3์ฐจ์ ๋ฐ๋์ฅ์ ํ๋๊ทธ๋จผํธ์์ ๋ณผ๋ฅจ ๋ ์ด๋ง์นญํด ๊ทธ๋ฆฝ๋๋ค.
- ์๋ฐ์ ์ง์ ๊ฐ์ ร
sechยฒ์์ง ํ๋กํ์ผ, ๋ก๊ทธ๋์ ํ, ์ค์ฌ ๋ง๋, FBM ๋ ธ์ด์ฆ๋ก ์ด๋ฃจ์ด์ง ํด์์ ๋ฐ๋์ฅ์ ๋๋ค (src/app/GalaxyModel.hpp). - ๊ด์ ์ด ์ด ์ฅ์ ํต๊ณผํ๋ฉฐ ๋ฐ๊ด์ ์ ๋ถํ๊ณ ๋จผ์ง์ ์ํ ์๊ด์ ๊ณฑํฉ๋๋ค
(
shaders/galaxy_volume.frag). ํ๋ฉด ์ด๋ฏธ์ง๊ฐ ์๋๋ผ ๋ถํผ๋ผ์ ์ด๋ ๊ฐ๋์์ ๋ด๋ ์ผ๊ด๋๊ณ , ์์์ ๋ณด๋ฉด ์ค์ ๋ก ์์ ์๋ฐ์ผ๋ก ๋ณด์ ๋๋ค. - ๋ฐ๋ ๊ณต์์ CPU(C++)์ GPU(GLSL)์ ๊ฐ์ ํํ๋ก ์กด์ฌํฉ๋๋ค. CPU ์ชฝ์ ๋ณ ํํฐํด์ ๊ทธ ๋ฐ๋์ฅ์์ rejection ์ํ๋งํ๋ ๋ฐ ์ฐ์ด๊ณ , ๊ตฌ์กฐ ๋ถ๋ณ์(ํฝ๋๋ถ > ์ธ๊ณฝ, ํ > ํ ์ฌ์ด, ๋จผ์ง๋ ์ค์๋ฉด์์ ์ต๋)์ ์คํ ์ self-test๋ก ๊ฒ์ฆํฉ๋๋ค.
์ฑ๋ฅ์ ์ ์ํ ๋ ์ด๋ง์นญ์ผ๋ก ๋ง์ท์ต๋๋ค. ์คํ ๊ฐ์๋ฅผ ๊ณ ์ ํ๋ ๋์ ์คํ ํฌ๊ธฐ๋ฅผ ๊ณ ์ ํ๊ณ ๊ด์ ๊ธธ์ด์ ๋น๋ก์์ผ, ์๋ฐ์ ์ ๋ฉด์ผ๋ก ๋ณด๋ ์์ (๊ด์ ์ด ์งง์)์ 10์คํ ๋จ์ง๋ง ์๋๋ค. ์นด๋ฉ๋ผ๊ฐ ์ํ ์๋ฐ์ ํต๊ณผํ๋ ์ ํ ๊ตฌ๊ฐ์์๋ง ์คํ ์ํ์ด ์ฌ๋ผ๊ฐ๋๋ค.
์๋ฐ ์ฃผ๋ณ์ ์ ์ฐจ์ ์์ฑ์ด ์๋๋ผ ๊ด์ธก ์นดํ๋ก๊ทธ์ ๋๋ค.
| ๋์ | ์ถ์ฒ | ๋ฐฐ์น ๋ฐฉ์ |
|---|---|---|
| ๊ตฌ์์ฑ๋จ 157๊ฐ | Harris(2010) ์นดํ๋ก๊ทธ | ์ค์ธก ์์น์ ๊ด๋ |
| ๋ยท์๋ง์ ค๋์ด | ์ค์ธก ์ ๊ฒฝยท์ ์ยท๊ฑฐ๋ฆฌ(49.97 / 62.44 kpc) | ํฌ๊ธฐ๋ ์ค์ธก ๊ฒ๋ณด๊ธฐ ๊ฐ์ง๋ฆ์์ ์ ๋ |
| ํ์ | โ | ์ํ ์ค์ฌ์์ 8.2 kpc โ "You are here" ํ์ |
Harris ์นดํ๋ก๊ทธ์ ์ขํ๋ ํ์ ์ค์ฌ ์ง๊ต์ขํ์ด๊ณ ์ถ ๋ฐฉํฅ์ด ์ด ํ๋ก์ ํธ์ ์ํ ํ๋ ์๊ณผ ๊ฐ์์, ํ์ ์์น๋งํผ ํํ์ด๋ํ๋ฉด ๊ทธ๋๋ก ์์ต๋๋ค. ๋ณํ์ด ๋ง๋์ง๋ 157๊ฐ ์ ๋ถ์ ๋ํด ์นดํ๋ก๊ทธ๊ฐ ๋ฐ๋ก ์ฃ๊ณ ์๋ ์ํ์ค์ฌ ๊ฑฐ๋ฆฌ์ ๋์กฐํด ํ์ธํ์ต๋๋ค(์ต๋ ์ฐจ์ด 0.25 kpc โ ์นดํ๋ก๊ทธ๊ฐ ๊ฐ์ ํ Rโ = 8.0 kpc์ ์ด ํ๋ก์ ํธ์ 8.19 kpc ์ฐจ์ด๋ก ์ค๋ช ๋ฉ๋๋ค).
๋ง์ ค๋์ด์ ์ํ ๋ฐ๊ฒฝ์ 3~4๋ฐฐ ๋ฐ์ ์์ต๋๋ค. ๋ณด๊ธฐ ์ข์ผ๋ผ๊ณ ๊ฐ๊น์ด ๋น๊ธฐ๋ ๋์ ์ค์์ ๋ฒ์๋ฅผ ๋ํ์ต๋๋ค โ ์ํ ์ ๊ฒฝ์ ์ง๋ ๋ ์ถ์ํ๋ฉด ์์ฑ์ํ๊น์ง ๋ด๊ธฐ๋ ์์ ์ ๋๋ฌํฉ๋๋ค.
src/
VulkanBase.hpp Vulkan ์ธํ๋ผ (์ธ์คํด์คยท๋๋ฐ์ด์คยท์ค์์ฒด์ธยท๋ ๋ํจ์ค)
app/ ์ฑ ๊ณ์ธต โ ์ด๊ธฐํ, ํ๋ ์ ๋ฃจํ, ์ปค๋งจ๋ ๋ฒํผ ๊ธฐ๋ก, UI, ํ์ดํ๋ผ์ธ
GalaxyModel.hpp ์ํ ๋ฐ๋์ฅ (GPU ์
ฐ์ด๋๊ฐ ๊ฐ์ ๊ณต์์ ๋ฏธ๋ฌ)
GlobularClusters.hpp Harris ์นดํ๋ก๊ทธ 157๊ฐ (์์ฑ ํ์ผ)
CosmicZoom.* ํ์๊ณ <-> ์ํ ์ ํ์ ๋จ์ผ ๊ธฐ์ค
sim/ ๋ ๋๋ง๊ณผ ๋ฌด๊ดํ ์์ ๊ณ์ฐ โ ๊ถค๋, ์ํ์ฑ๋, ๋ณ ์นดํ๋ก๊ทธ, ์ํ ์ขํ๊ณ
core/ ์ค์ ์ ์ฅ, GPU ํ๋กํ์ผ๋ฌ
gfx/ ๋ฉ์ ์์ฑ
shaders/ GLSL ์๋ณธ. ๋น๋๊ฐ .spv๋ก ์ปดํ์ผํ๋ค
data/ ๋ณ์๋ฆฌ ์ ยท์ด๋ฆ CSV
textures/ ๊ตฌ์ ๋ .dds ์์ฐ (1.5 GB, Release์์ ๋ฐ๋๋ค)
scripts/ ํ
์ค์ฒ ๊ตฝ๋ ๋๊ตฌ์ ์คํฌ๋ฆฝํธ, ์นดํ๋ก๊ทธ ๋ณํ๊ธฐ, ๊ฐ๋ฐ์ ๋ชจ๋ ์คํ ๋ฐฐ์น
assets/ README์ฉ ์ด๋ฏธ์ง
sim/๊ณผ GalaxyModel.hpp๋ Vulkan์ ์์กดํ์ง ์๋ ์์ ํจ์๋ผ, ๊ฐ์ด ๋ง๋์ง ์คํ ์
self-test๋ก ๊ฒ์ฆํฉ๋๋ค(์์ํ ๋ [galframe], [galaxymodel] ๊ฐ์ ์ค๋ก ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ต๋๋ค).
scripts\run_dev.batSOLAR_PROFILE=1์ ์ฃผ๊ณ ์คํํฉ๋๋ค. ์ค์ ์ฐฝ์ Show GPU Times๊ฐ ๋ํ๋๊ณ , ์ขํ๋จ์
ํจ์ค๋ณ GPU ์๊ฐ์ด ๋น๋๋ค. ์ํ์ฑ์ด ์ด๋ LOD์ ๋ช ๊ฐ ๋ค์ด๊ฐ๋์ง, ๋ ๋ ํ๊ฒ์ด ๋ช MiB์ธ์ง๋
ํจ๊ป ๋์ต๋๋ค. ์ผ๋ฐ ์คํ์์๋ ํญ๋ชฉ ์์ฒด๊ฐ ์๊ณ ํ์์คํฌํ๋ ์ฐ์ง ์์ต๋๋ค.
%๊ฐ ์๋๋ผ ms๋ฅผ ๋ณด์ธ์. ํ ํจ์ค์ ๋น์ค์ ๊ทธ ํจ์ค๊ฐ ๋๋ ค์ ธ์๊ฐ ์๋๋ผ ๋ค๋ฅธ ํจ์ค๊ฐ ์ธ์ ธ์ ์ค๋ฅผ ์ ์์ต๋๋ค. ์ค์ ๋ก ์ถ์ํด์ ์ํ์ฑ์ ํ๋ฉด์ ๊ฐ๋ ์ฑ์ฐ๋ฉด ๋น์ค์ด 24%๊น์ง ์ค๋ฅด์ง๋ง ์ ๋ ์๊ฐ์ 0.69 ms๋ก ๋ฎ์ต๋๋ค โ ํ์ ํ๋๊ฐ ๊ทธ ์ธ ๋ฐฐ๋ฅผ ์๋๋ค.
scripts/์ DirectXTex์ texconv.exe์
texassemble.exe๊ฐ ๋ค์ด ์์ต๋๋ค(MIT). ๋ฐํ์์๋ ํ์ ์๊ณ , ์๋ณธ์์ .dds๋ฅผ
๋ค์ ๋ง๋ค ๋๋ง ์๋๋ค. texassemble๋ก ๋ฑ์ฅ์ ํ๋ธ๋งต์ผ๋ก ๋ฌถ๊ณ texconv๋ก ์์ถํฉ๋๋ค.
์์ ํ
์ค์ฒ๋ scripts/make_bc7.sh๋ก ๊ตฝ์ต๋๋ค. sRGB ํ
์ค์ฒ์๋ ๋ฐ๋์ -srgbi๋ฅผ
์ฃผ์ด์ผ ํฉ๋๋ค. texconv๋ ์ถ๋ ฅ์ด _SRGB ํฌ๋งท์ด๋ฉด ์
๋ ฅ์ ์ ํ์ผ๋ก ๊ฐ์ ํด sRGB๋ก ํ ๋ฒ ๋
์ธ์ฝ๋ฉํ๋๋ฐ, JPEG/PNG ๋ฐ์ดํธ๋ ์ด๋ฏธ sRGB๋ผ ์ด์ค ์ธ์ฝ๋ฉ์ด ๋ฉ๋๋ค(์๋ณธ 128์ด ํ์ผ์
188๋ก ์ ์ฅ โ GPU๊ฐ ๋ค์ ๋์ฝ๋ํด ์ค๊ฐํค์ด 2.3๋ฐฐ ๋ฐ์์ง).
๊ฒ์ฆํ ๋๋ ๋์ฝ๋๋ก ๊ฐ์ ๋น๊ตํ๋ฉด ์ ๋ฉ๋๋ค. ๋์ฝ๋ ๊ฒฝ๋ก๊ฐ ๊ฐ์ ๋ณํ์ ์ญ์ผ๋ก ๊ฑธ์ด
์ฐจ์ด๋ฅผ ์ง์๋ฒ๋ฆฝ๋๋ค. ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ BC7_UNORM์ผ๋ก๋ ๊ตฝ๊ณ ์์ถ๋ ๋ธ๋ก ๋ฐ์ดํธ๋ฅผ ์ง์
๋น๊ตํด์ผ ํฉ๋๋ค.
๋
ธ๋ง๋งต์ BC5๋ก ๊ตฝ๊ณ -dx10์ ํจ๊ป ์ค๋๋ค. ์์ผ๋ฉด texconv๊ฐ ๊ตฌ์ FourCC(BC5U) ํค๋๋ก
์ ์ฅํด ๋ฐ์ดํฐ ์์ ์์น๊ฐ 148์ด ์๋๋ผ 128์ด ๋๊ณ , ๋ก๋๊ฐ ํ์ผ์ ๊ฑฐ๋ฆ
๋๋ค.
์์ ํ
์ค์ฒ๋ BC7๋ก ๋ฏธ๋ฆฌ ์์ถํ .dds๋ก ๋ณด๊ดํฉ๋๋ค. GPU์์ 4ร4 ํฝ์
๋ธ๋ก์ 16๋ฐ์ดํธ๋ก
์ ์ฅํด VRAM์ ์ ํํ 1/4๋ก ์ค์
๋๋ค. ๋
ธ๋ง๋งต์ BC5๋ก ๊ตฝ์ต๋๋ค โ ๋ ์ฑ๋๋ง ๋ด๊ณ z๋
์
ฐ์ด๋๊ฐ sqrt(1-xยฒ-yยฒ)๋ก ๋ณต์ํ๋๋ฐ, ๋งต์ ๋จ์ ๋ฒกํฐ๋ก ๊ตฌ์ ์ผ๋ฏ๋ก ์ ํํฉ๋๋ค.
๋ฌ๋ง ๋ฌด์์ถ์ผ๋ก ๋จ๊ฒผ์ต๋๋ค. ๋ธ๋ก ์์ถ ์ค์ฐจ๊ฐ ํฌ๋ ์ดํฐ ํ ๋๋ฆฌ์ ๋ชฐ๋ ค(ํํ๋ถ 0.70ยฐ ๋ ํ ๋๋ฆฌ 2.61ยฐ) ๊ฐ์ฅ ๋์ ๋๋ ๊ณณ์ ๋ญ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ ํ์ ์ถ์ฒ๊ฐ ๋ฐฐํฌํ๋ ์๋ณธ์ JPEG/PNG์ด๋ฉฐ, ์ด ์ ์ฅ์์๋ ๋ณํ๋ณธ๋ง ๋ด์ต๋๋ค.
์์ค ์ฝ๋๋ MIT License๋ฅผ ๋ฐ๋ฆ ๋๋ค.
ํ ์ค์ฒ ์์ฐ์ MIT๊ฐ ์๋๋ฉฐ, ๊ฐ ์ถ์ฒ์ ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค:
| ์์ฐ | ์ถ์ฒ | ๋ผ์ด์ ์ค |
|---|---|---|
๋ณํ๋ (skybox_stars.dds, skybox_band.dds) |
NASA SVS Deep Star Maps 2020 โ Gaia DR2 + Hipparcos-2 + Tycho-2, ๋ณ 17์ต ๊ฐ | ํผ๋ธ๋ฆญ ๋๋ฉ์ธ (์๋ ํฌ๋ ๋ง ํ์) |
๋ณ์๋ฆฌ ์ ยท์ด๋ฆ (data/constellations/) |
d3-celestial โ Olaf Frohn (SOURCE.md ์ฐธ์กฐ) |
BSD 2-Clause |
๊ตฌ์์ฑ๋จ (src/app/GlobularClusters.hpp) |
W. E. Harris, Catalog of Parameters for Milky Way Globular Clusters (McMaster University, 2010 ๊ฐ์ ) โ 157๊ฐ์ ์์นยท๊ด๋. scripts/parse_harris.py๋ก ๋ณํ |
ํ์ ์๋ฃ (์ธ์ฉ ์ Harris 1996, AJ 112, 1487) |
ํ์ฑ ํ
์ค์ฒ (textures/planets/) |
Solar System Scope | CC BY 4.0 |
๋ชฉ์ฑ (jupiter.dds) |
Askaniy Anpilogov / Bjรถrn Jรณnsson โ Cassini(2000) + Juno ๊ทน์ง๋ฐฉ, 14400ร7200 | CC BY 3.0 |
์ง๊ตฌ (earth_*.dds, earth_normal.dds) |
NASA Blue Marble NG 2004-08, Black Marble 2016, Blue Marble ๊ตฌ๋ฆ(2001), NOAA ETOPO 2022 | ํผ๋ธ๋ฆญ ๋๋ฉ์ธ |
ํด์์ฑ (4k_neptune.jpg) |
CelestiaContent | CC BY 3.0 |
์ํ์ฑ ํ
์ค์ฒ (textures/asteroids/) |
3D Asteroid Catalogue | ํด๋น ์ฌ์ดํธ ์ด์ฉ์ฝ๊ด ์ฐธ์กฐ |
๋ฌ ํ
์ค์ฒ (8k_moon.jpg) |
Solar System Scope | CC BY 4.0 |
๊ฐ๋ฆด๋ ์ด ์์ฑยทํ์ดํ (4k_*.jpg, io_glow.png) |
CelestiaContent โ ์๋ ์์ธ | CC BY 3.0 / CC BY 4.0 |
์ค์ธก ์งํ ๋
ธ๋ง๋งต (*_normal.dds, moon_normal.png) |
NASA / USGS / NOAA ํ์ฌ์ ๊ณ ๋ ๋ฐ์ดํฐ โ ์๋ ์์ธ | ํผ๋ธ๋ฆญ ๋๋ฉ์ธ |
| ์คํ ํ์ผ ์์ด์ฝ | Space Travel โ amonrat rungreangfangsai | Flaticon ๋ฌด๋ฃ ๋ผ์ด์ ์ค (์ ์์ ํ์ ํ์) |
ํ
์ค์ฒ ๋๊ตฌ (scripts/texconv.exe, texassemble.exe) |
DirectXTex (Microsoft) | MIT |
์คํ ํ์ผ ์์ด์ฝ์ ํ๊ธฐ ๋ฌธ๊ตฌ์ ๋๋ค:
์ฐ์ฃผ ์์ด์ฝ ์ ์์: amonrat rungreangfangsai - Flaticon
๋ฐฐ๊ฒฝ์ NASA SVS์ Deep Star Maps 2020์์ ๊ตฝ์ต๋๋ค. Gaia DR2ยทHipparcos-2ยทTycho-2์ ์ค์ธก ๋ณ 17์ต ๊ฐ๋ก ๋ง๋ ์๋ฃ์ ๋๋ค.
NASA๊ฐ ์๊ตฌํ๋ ํฌ๋ ๋ง์ ๋๋ค:
NASA/Goddard Space Flight Center Scientific Visualization Studio. Gaia DR2: ESA/Gaia/DPAC.
Gaia DR2 ๋ถ๋ถ์ ESA์ ๋ณ๋ ์ธ์ฉ ์กฐ๊ฑด์ ๋ฐ๋ฆ ๋๋ค.
๋ ์ธต์ผ๋ก ๋๋ ๋ด์ต๋๋ค โ skybox_stars๋ ๋ฐ์ ๋ณ(hiptyc), skybox_band๋
์ํ์ ํ์ฐ๊ด๊ณผ ์ด๋์ด ๋ณ(milkyway)์
๋๋ค. ํ๋๋ก ํฉ์น๋ฉด ์ ๋๋ ์ด์ ๊ฐ ์์ต๋๋ค.
๋ณ ๊ฐ์๋ฅผ ์ค์ ํ๋(์ ์ฒ 9,100๊ฐ, ๋๊ธฐ ์๋ ์ฐ์ฃผ์ ๋งจ๋ ํ๊ณ 6.5๋ฑ๊ธ)์ ๋ง์ถ๋
์์๊ฐ ๋ฌธํฑ์ 0.261์ธ๋ฐ, ์ํ์ ๋ ๋ 0.044๋ก ํ
์
๋น 6๋ฐฐ ์ด๋ก์ต๋๋ค. ๊ทธ๋์ ํ๋์
ํค ๊ณก์ ์ผ๋ก๋ ๋ณ ๊ฐ์๋ฅผ ๋ง์ถ๋ ์๊ฐ ์ํ์๊ฐ ์ฌ๋ผ์ง๋๋ค. ์ค์ ๋ก๋ ๋ ๋ค ๋ณด์ด๋๋ฐ,
์ ๊ด์๊ณผ ํ์ฐ๊ด์ ๋์ ๊ฒ์ถ ๋ฌธํฑ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์
๋๋ค โ ๋ ๋ ๋์ด์ ๋์ด ๊ณต๊ฐ์ ์ผ๋ก
์ ๋ถํด ์ธ์งํฉ๋๋ค. ํฝ์
ํ๋๋ง ๋ณด๋ ํจ์๋ก๋ ํํํ ์ ์๋ ์ฐจ์ด๋ผ ์ธต์ ๊ฐ๋ฆ
๋๋ค.
๊ธฐ๋ณธ ํ๋์์๋ ๋ ์ธต์ ๊ฐ์ ๋ฐฐ์จ์ ๊ณฑํฉ๋๋ค. hiptyc + milkyway = starmap์ด
์ฑ๋ฆฝํ๋ฏ๋ก(ํฌํ๋์ง ์์ ํ์์์ ์ต๋ ์ค์ฐจ 0.000488 = half ๋ฐ์ฌ๋ฆผ ํ๊ณ) ํตํฉ๋ณธ์
์ฐ๋ ๊ฒ๊ณผ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์ต๋๋ค. Real Stars๋ฅผ ์ผ๋ฉด ๊ฐ ์ธต์ ๋ค๋ฅธ ๊ณก์ ์ ๊ฑธ์ด ๋งจ๋์ผ๋ก ๋ณธ
ํ๋์ ๋ง์ถฅ๋๋ค.
์ ๊ฑฐ์ํต๋๋ฒ 16384ร8192๋ฅผ ํ๋ธ๋งต 4096ยฒ 6๋ฉด์ผ๋ก ๋ณํํฉ๋๋ค(์๋ณธ์ ๊ฐํด์๋ 0.02197ยฐ/px์ ์ ํํ ์ผ์นํ๋ ํฌ๊ธฐ). ๋ณด๊ฐ์ ๋์ด์4๋ฅผ ์๋๋ค โ ๋ณ์ ์๋ณธ์์๋ 1~2ํฝ์ ์ธ ์ ๊ด์์ด๋ผ, ๊ฒฉ์์ ์ด๊ธ๋ ์์น๋ก ๋ฆฌ์ํํ๋ฉด ๋ด์ฐ๋ฆฌ๊ฐ ๋ฒ์ง๋ฉฐ ์ด๋์์ง๋๋ค. ๋ฐ์ ๋ณ 2000๊ฐ๋ก ์ฐ ๋ด์ฐ๋ฆฌ ๋ณด์กด์จ์ด ์์ ํ 53.3%, ๋ฐ์ดํ๋น 70.8%, ๋์ด์4 74.6%์์ต๋๋ค. ๋์ด์๋ ์์ ๊ณ์์ด ์์ด ๋ฐ์ ๋ณ ๋๋ ์ ์์๊ฐ ๋จ์ผ๋ฏ๋ก 0์์ ์๋ฆ ๋๋ค.
์์ถ์ BC6H_UF16(HDR ์ ์ฉ ๋ธ๋ก ์์ถ)์ ๋๋ค. ์ด๊ฒ ์์ผ๋ฉด ํด์๋ ์ ๊ทธ๋ ์ด๋๊ฐ ์ฑ๋ฆฝํ์ง ์์ต๋๋ค โ 4096ยฒร6๋ฉด์ fp16 ๋ฌด์์ถ์ผ๋ก ์ฌ๋ฆฌ๋ฉด ์ธต๋น 805 MiB์ธ๋ฐ, BC6H๋ก๋ ๋ฐ๋งต๊น์ง ๋ค ๋ฃ๊ณ 128 MiB์ ๋๋ค.
CelestiaContent์ 4096ร2048 ๋งต์ ์ด ์์ง์ ์๋ฒ ๋ ๊ท์ฝ์ ๋ง๊ฒ ๋ฐ๊ธฐ๋ง ์กฐ์ ํด ์ฌ์ฉํ์ต๋๋ค.
io_glow.png๋ Celestia io.png์ ์ํ ์ฑ๋(ํ์ฐ ์ด์ ๋ง์คํฌ)์ ๋ถ๋ฆฌํ ๊ฒ์
๋๋ค.
| ํ ์ค์ฒ | ์ ์์ | ๋ผ์ด์ ์ค |
|---|---|---|
| ์ด์ค, ์ด์ค ์ด์ | ItzImcool, AstroChara / NASAยทJPL-CaltechยทASIยทUSGS, SwRIยทMSSSยทGerald EichstรคdtยทJason PerryยทJohn Rogers | CC BY 4.0 |
| ๊ฐ๋๋ฉ๋ฐ | Askaniy Anpilogov / NASAยทJPL-CaltechยทASIยทUSGS, Bjรถrn Jรณnsson, SwRIยทMSSSยทBrian Swift | CC BY 3.0 |
| ํ์ดํ | Askaniy Anpilogov, Pedro Garcia, AstroChara / Martonchik & Orton (1994), Karkoschka et al. (2016), Seignovert et al. (2019), NASAยทJPL-CaltechยทASIยทUSGS | CC BY 3.0 |
| ์ ๋กํ, ์นผ๋ฆฌ์คํ | CelestiaContent ํ๋ก์ ํธ / NASAยทJPL-CaltechยทUSGS | CC BY 3.0 |
ํด์์ฑ์ Irwin et al. (2024)์ด ์ ์ ํ ์ค์ ์์ ๋ฐ๋ฆ ๋๋ค. ํํ ์๋ ค์ง ์งํ ํ๋์์ ๋ณด์ด์ 2ํธ๊ฐ ๊ตฌ๋ฆ ๋ ๋ฅผ ๊ฐ์กฐํ๋ ค ์ฑ๋๋ฅผ ์ฌ๋ฆฐ ๊ฒฐ๊ณผ์ด๊ณ , ์ค์ ํด์์ฑ์ ์ฒ์์ฑ๊ณผ ๋น์ทํ ์ ์ ๋ น์ฒญ์์ ๋๋ค.
๋ฏธ๊ตญ ์ ๋ถ ์ ์๋ฌผ(ํผ๋ธ๋ฆญ ๋๋ฉ์ธ)์ธ ํ์ฌ์ ์ค์ธก ๊ณ ๋ ์๋ฃ(DEM)์์ ์ง์ ๊ตฌ์ ์ต๋๋ค.
| ์ฒ์ฒด | ์๋ณธ ์๋ฃ |
|---|---|
| ์ง๊ตฌ | NOAA ETOPO 2022 ์ ๊ตฌ ์งํ 30์ด (๋ฐ๋ค๋ ํด์๋ฉด ๋์ด๋ก ํํํ) |
| ๋ฌ | LRO LOLA ์ ๊ตฌ DEM 118 m |
| ์์ฑ | MESSENGER ์ ๊ตฌ DEM 665 m |
| ํ์ฑ | MGS MOLA ์ ๊ตฌ DEM |
| ๊ธ์ฑ | Magellan ์ ๊ตฌ ์งํ๋ 4641 m (๊ณ ๋๊ณ ๋ฐ์๊ตญ์ด 10ร20 km๋ผ 1ํฝ์ ํํํ๋ก ๊ฒฉ์ ์ก์ ์ ๊ฑฐ) |
์ด ์ ์ฅ์๋ฅผ ํฌํฌํ๊ฑฐ๋ ์ฌ๋ฐฐํฌํ์ค ๊ฒฝ์ฐ, ์ ์ถ์ฒ ํ๊ธฐ๋ฅผ ํจ๊ป ์ ์งํด ์ฃผ์ธ์.






