Skip to content
Youl-AIPublic

About

High-performance Solar System simulation built with C++ and Vulkan API. Interactive educational tool.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

159 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Ephemeris

์ธก์ •๋œ ํƒœ์–‘๊ณ„ โ€” Vulkan API๋กœ ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๋งŒ๋“  ์‹ค์‹œ๊ฐ„ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ

C++ Vulkan Platform License

ํƒœ์–‘๊ณ„ ์ „๊ฒฝ

Ephemeris(์ฒœ์ฒด๋ ฅ)๋Š” ์ฒœ์ฒด๊ฐ€ ์‹œ๊ฐ๋งˆ๋‹ค ์‹ค์ œ๋กœ ์–ด๋””์— ์žˆ์—ˆ๋Š”์ง€ ๊ธฐ๋กํ•œ ํ‘œ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์˜ ์›์น™์ด ๊ทธ ๋‹จ์–ด์— ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ๋ณด๊ธฐ ์ข‹์€ ๊ทธ๋ฆผ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์‹ค์— ๋งž๋Š” ๊ทธ๋ฆผ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ง€ํ˜• ์š”์ฒ ์€ ํƒ์‚ฌ์„ ์ด ์‹ค์ œ๋กœ ์ธก์ •ํ•œ ๊ณ ๋„ ์ž๋ฃŒ(LOLA, MOLA, MESSENGER, Magellan, ETOPO)์—์„œ ๊ตฝ์Šต๋‹ˆ๋‹ค.
  • ๋ณ„ํ•˜๋Š˜์€ Gaia๊ฐ€ ๊ด€์ธกํ•œ ์‹ค์ œ ๋ณ„ ์œ„์น˜๋ฅผ ์“ฐ๊ณ , ๊ฐœ์ˆ˜๋Š” ์‹ค์ œ ํ•œ๊ณ„๋“ฑ๊ธ‰์— ๋งž์ถฅ๋‹ˆ๋‹ค.
  • ํ•ด์™•์„ฑ์€ ํ”ํžˆ ์•Œ๋ ค์ง„ ์ง„ํ•œ ํŒŒ๋ž‘์ด ์•„๋‹ˆ๋ผ 2024๋…„์— ์ •์ •๋œ ์‹ค์ œ ์ƒ‰์„ ์”๋‹ˆ๋‹ค.
  • ์†Œํ–‰์„ฑ๋Œ€๋Š” ์‹ค์ œ ๊ถค๋„ ์š”์†Œ ๋ถ„ํฌ์™€ ์ถฉ๋Œ ํŒŒํŽธ์˜ ํฌ๊ธฐ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • ๊ณ„์† ์ถ•์†Œํ•˜๋ฉด ํƒœ์–‘๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜ ๋ณผ๋ฅจ ๋ ˆ์ด๋งˆ์นญ์œผ๋กœ ๊ทธ๋ฆฐ ์šฐ๋ฆฌ ์€ํ•˜๊ฐ€ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ ์•ˆ์˜ ๊ตฌ์ƒ์„ฑ๋‹จ 157๊ฐœ์™€ ๋งˆ์ ค๋ž€์šด์€ ๊ด€์ธก ์นดํƒˆ๋กœ๊ทธ์˜ ์‹ค์ œ ์œ„์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์šฉ ์—”์ง„์„ ์“ฐ์ง€ ์•Š๊ณ  ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ, ์Šค์™‘์ฒด์ธ, ๋ Œ๋” ํŒจ์Šค๊นŒ์ง€ ์ง์ ‘ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.


ํ™”๋ฉด

์ง€๊ตฌ์™€ ๋‹ฌ ์ผ์‹
์ง€๊ตฌ์™€ ๋‹ฌ ์ผ์‹
์ง€ํ˜• ์š”์ฒ ์€ ํƒ์‚ฌ์„  ์‹ค์ธก ๊ณ ๋„(๋‹ฌ LOLA, ์ง€๊ตฌ ETOPO)์—์„œ ๊ตฌ์šด ๋…ธ๋ง๋งต์ž…๋‹ˆ๋‹ค. ๋ฐค๋ฉด์˜ ๋ถˆ๋น›์€ Black Marble. ๋‹ฌ ๋’ค๋กœ ํƒœ์–‘์ด ์™„์ „ํžˆ ๊ฐ€๋ ค์ง„ ์ˆœ๊ฐ„. ๊ทธ๋ฆผ์ž๋Š” ์…ฐ๋„์šฐ ๋งต์ด ์•„๋‹ˆ๋ผ ๊ด‘์„ -๊ตฌ ๊ต์ฐจ๋กœ ํ’‰๋‹ˆ๋‹ค. ํ…์…€์ด๋ผ๋Š” ๊ฐœ๋…์ด ์—†์–ด ๋ณธ์˜๊ณผ ๋ฐ˜์˜์˜ ๊ฒฝ๊ณ„๊ฐ€ ์•„๋ฌด๋ฆฌ ํ™•๋Œ€ํ•ด๋„ ๊ณ„๋‹จ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ชฉ์„ฑ ํ† ์„ฑ
๋ชฉ์„ฑ ํ† ์„ฑ
์ด์˜ค๊ฐ€ ๋ชฉ์„ฑ ์•ž์„ ์ง€๋‚˜๋ฉฐ ๊ตฌ๋ฆ„ ์œ„์— ์ œ ๊ทธ๋ฆผ์ž๋ฅผ ๋–จ์–ด๋œจ๋ฆฝ๋‹ˆ๋‹ค. ํ‘œ๋ฉด์€ Cassini์™€ Juno ๊ด€์ธก ํ•ฉ์„ฑ๋ณธ์ž…๋‹ˆ๋‹ค. ๊ณ ๋ฆฌ๊ฐ€ ๋ณธ์ฒด์— ๊ทธ๋ฆผ์ž๋ฅผ ๋“œ๋ฆฌ์›๋‹ˆ๋‹ค โ€” ๊ณ ๋ฆฌ ํ…์Šค์ฒ˜์˜ ์•ŒํŒŒ๋ฅผ ๋ฐ€๋„๋กœ ์ฝ์–ด ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์€ํ•˜

๊ณ„์† ์ถ•์†Œํ•˜๋ฉด ๋„๋‹ฌํ•˜๋Š” ์€ํ•˜ ์ „๊ฒฝ์ž…๋‹ˆ๋‹ค. ํ‰๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ 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.bat

SOLAR_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์ž…๋‹ˆ๋‹ค.

์œ„์„ฑ ํ…์Šค์ฒ˜ ์ƒ์„ธ (CC BY โ€” ์ €์ž‘์ž ํ‘œ์‹œ ํ•„์ˆ˜)

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ํ”ฝ์…€ ํ‰ํ™œํ™”๋กœ ๊ฒฉ์ž ์žก์Œ ์ œ๊ฑฐ)

์ด ์ €์žฅ์†Œ๋ฅผ ํฌํฌํ•˜๊ฑฐ๋‚˜ ์žฌ๋ฐฐํฌํ•˜์‹ค ๊ฒฝ์šฐ, ์œ„ ์ถœ์ฒ˜ ํ‘œ๊ธฐ๋ฅผ ํ•จ๊ป˜ ์œ ์ง€ํ•ด ์ฃผ์„ธ์š”.

About

High-performance Solar System simulation built with C++ and Vulkan API. Interactive educational tool.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages