Download configs/render_graph.json from kimjunhan/vkgs-sim: direct link, hf CLI and curl.
- Browser
- Download file 9.33 kB
-
https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/configs/render_graph.json
- Command line
-
hf download hf://kimjunhan/vkgs-sim/configs/render_graph.json
-
curl -L -o render_graph.json https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/configs/render_graph.json
9.33 kB
| { | |
| "_doc": "Vulkan ๋ ๋ ๊ทธ๋ํ (src/vkgs/src/render_graph.*). pipelines = ํ์ดํ๋ผ์ธ ์ ์, resources = ๊ทธ๋ํ๊ฐ ์ถ์ ํ๋ ๋ฆฌ์์ค, passes = ๋ ธ๋ (kind = ์์ง์ ์คํ๊ธฐ ์ด๋ฆ, uses = [๋ฆฌ์์ค, ์ฌ์ฉ ๋ฐฉ์]). ์์ง์ ์ ์ธ ์์๋๋ก for ๋ฌธ ํ๋๋ก ์ํํ๋ฉฐ, uses ๋ก ๋ฐฐ๋ฆฌ์ดยท๋ ์ด์์ ์ ํ์ ์๋์ผ๋ก ๋ฃ๋๋ค (์ ์ธ ์์ = ์ ๊ทผ ์์). vkgs_viewer --graph out.dot ๋ก ๊ทธ๋ฆผ.", | |
| "pipelines": { | |
| "_doc": "graphics: vertex + fragment, topology(triangle_list|triangle_strip|line_list), depth(off|test|test_write|write_only), cull(none|back), line_width(dynamic ์ด๋ฉด vkCmdSetLineWidth). compute: compute.", | |
| "gs_preprocess": {"compute": "gs_preprocess.comp"}, | |
| "gs_sort": {"compute": "gs_sort.comp"}, | |
| "gs_radix_hist": {"compute": "gs_radix_hist.comp"}, | |
| "gs_radix_scan": {"compute": "gs_radix_scan.comp"}, | |
| "gs_radix_scatter": {"compute": "gs_radix_scatter.comp"}, | |
| "gs_splat": {"vertex": "gs_splat.vert", "fragment": "gs_splat.frag", "topology": "triangle_strip", "depth": "test"}, | |
| "line": {"vertex": "line.vert", "fragment": "line.frag", "topology": "line_list", "depth": "test", "line_width": "dynamic"}, | |
| "occluder": {"vertex": "line.vert", "fragment": "line.frag", "topology": "triangle_list", "depth": "write_only", "line_width": "dynamic"}, | |
| "env": {"vertex": "env.vert", "fragment": "env.frag", "topology": "triangle_list", "depth": "off", "target": "background"}, | |
| "sky_sim": {"vertex": "env.vert", "fragment": "sky_sim.frag", "topology": "triangle_list", "depth": "off", "target": "background"}, | |
| "pbr": {"vertex": "pbr.vert", "fragment": "pbr.frag", "topology": "triangle_list", "depth": "test_write", "cull": "back"}, | |
| "gltf_opaque": {"vertex": "pbr_gltf.vert", "fragment": "pbr_gltf.frag", "topology": "triangle_list", "depth": "test_write"}, | |
| "gltf_blend": {"vertex": "pbr_gltf.vert", "fragment": "pbr_gltf.frag", "topology": "triangle_list", "depth": "test"}, | |
| "shadow": {"vertex": "shadow.vert", "fragment": "shadow.frag", "topology": "triangle_strip", "depth": "test"}, | |
| "weather": {"compute": "weather.comp"}, | |
| "precip": {"vertex": "precip.vert", "fragment": "precip.frag", "topology": "triangle_strip", "target": "precip"}, | |
| "fxaa": {"compute": "fxaa.comp"}, | |
| "camera_isp": {"compute": "camera_isp.comp", "_doc": "์ ฐ์ด๋ ๊ทธ๋ํ configs/shader_graphs/camera_isp.json ์ด ์์ฑ"}, | |
| "camera_mode": {"compute": "camera_mode.comp"} | |
| }, | |
| "resources": { | |
| "gaussians": {"type": "buffer", "doc": "๊ฐ์ฐ์์ (์์นยท๊ณต๋ถ์ฐยทSH), ๋ก๋ ๋ ํ ๋ฒ"}, | |
| "camera": {"type": "buffer", "doc": "์นด๋ฉ๋ผ UBO"}, | |
| "splats": {"type": "buffer", "doc": "ํ๋ฉด๊ณต๊ฐ ์คํ๋ซ"}, | |
| "keys": {"type": "buffer", "doc": "๊น์ด ์ ๋ ฌ ํค (๋ณด์ด๋ ๊ฒ๋ง ์์ ๋ชจ์๋ค)"}, | |
| "keys_tmp": {"type": "buffer", "doc": "radix ์ ๋ ฌ ์์ (keys ์ ๋ฒ๊ฐ์)", | |
| "create": {"bytes_per": "gaussians_pow2", "stride": 8, "bindless": "ssbo"}}, | |
| "sort_hist": {"type": "buffer", "doc": "radix ์ ๋ ฌ (์ํฌ๊ทธ๋ฃน, ์๋ฆฟ์) ํ์คํ ๊ทธ๋จยท์ถ๋ ฅ ์์น", | |
| "create": {"bytes": 524288, "bindless": "ssbo"}}, | |
| "draw_args": {"type": "buffer", "doc": "์ธ๋ค์ด๋ ํธ ๊ทธ๋ฆฌ๊ธฐ ์ธ์"}, | |
| "draw_readback": {"type": "buffer", "doc": "๋ณด์ด๋ ์คํ๋ซ ์ (ํธ์คํธ ์ฝ๊ธฐ)"}, | |
| "color": {"type": "image", "format": "rgba16f", "doc": "์ฅ๋ฉด ์ (premultiplied). rgba16f | rgba32f โ 16๋นํธ๋ ๋ธ๋ ๋ฉ ๋์ญํญ์ด ๋ฐ"}, | |
| "depth_acc": {"type": "image", "format": "rg32f", "doc": "๊ฑฐ๋ฆฌ ๋์ (ฮฃzฮฑ, ฮฃฮฑ) โ ํ๋ฉด ๊น์ด = R/G, ๋ฐฐ๊ฒฝ ๋น์จ = 1โG (depth_common.glsl). rg32f | rg16f"}, | |
| "depth": {"type": "image", "format": "d32", "doc": "๋ฉ์ ๊น์ด"}, | |
| "weather_ubo": {"type": "buffer", "doc": "๋ ์จยท์กฐ๋ ๋งค๊ฐ๋ณ์"}, | |
| "post": {"type": "image", "format": "rgba16f", "doc": "๋ ์จ ํ์ฒ๋ฆฌ ๊ฒฐ๊ณผ โ ํ๋ฉดยทPNGยท๋ฏธ๋ฆฌ๋ณด๊ธฐ"}, | |
| "background": {"type": "image", "format": "rgba16f", "doc": "๋ฐฐ๊ฒฝ ํ๋ (์๋ฎฌ๋ ์ด์ ํ๋ยทํ์ต๋ ํ๋ยทํ๊ฒฝ๋งต). ์ฅ๋ฉด์ ํฌ๋ช ๋ฐฐ๊ฒฝ ์์ ์๊ณ weather ๊ฐ ํฉ์น๋ค", | |
| "create": {"size": "screen"}}, | |
| "precip": {"type": "image", "format": "rgba16f", "doc": "๊ฐ์ ์ ์ ๋ ์ด์ด (premultiplied ์ ํ) โ weather ๊ฐ ํฉ์ฑ", | |
| "create": {"size": "screen"}}, | |
| "isp_params": {"type": "buffer", "doc": "์นด๋ฉ๋ผ ISP ์ ฐ์ด๋ ๊ทธ๋ํ ๋งค๊ฐ๋ณ์ (float[])", | |
| "create": {"bytes": 1024, "host_visible": true, "bindless": "ssbo"}} | |
| }, | |
| "targets": { | |
| "_doc": "๋ ๋ ํจ์ค ์ ์: color = ์ ์ฒจ๋ถ (๊ทธ๋ํ๊ฐ ๋ง๋ ์ด๋ฏธ์ง), ๋งค๋ฒ ์ง์ด๋ค. ํ์ดํ๋ผ์ธ์ target ๊ณผ ๋์คํฐ ํจ์ค์ params.target ์ด ์ด ์ด๋ฆ์ ์ด๋ค. scene ์ ์์ง ๊ธฐ๋ณธ (color + depth_acc + depth)", | |
| "precip": {"color": ["precip"]}, | |
| "background": {"color": ["background"]} | |
| }, | |
| "passes": [ | |
| {"name": "clear_draw_args", "kind": "fill_draw_args", "uses": [["draw_args", "transfer_dst"]], | |
| "params": {"buffer": "draw_args", "values": [4, 0, 0, 0]}}, | |
| {"name": "preprocess", "kind": "compute", | |
| "uses": [["gaussians", "storage_read"], ["camera", "uniform"], ["splats", "storage_write"], ["keys", "storage_write"], ["draw_args", "storage_read_write"]], | |
| "params": {"pipeline": "gs_preprocess", "dispatch": "gaussians_pow2"}}, | |
| {"name": "sort", "kind": "radix_sort", | |
| "_doc": "๋ณด์ด๋ ๊ฒ๋ง GPU radix (8๋นํธ ร 4ํจ์ค, ์์ ). subgroup ballot ์ด ์์ผ๋ฉด bitonic (๊ธฐ์ค ๊ตฌํ, 2^n ์ ์ฒด). VKGS_BITONIC=1 ๋ก ๊ฐ์ ", | |
| "uses": [["keys", "storage_read_write"], ["keys_tmp", "storage_read_write"], ["sort_hist", "storage_read_write"], ["draw_args", "storage_read"]], | |
| "params": {"hist": "gs_radix_hist", "scan": "gs_radix_scan", "scatter": "gs_radix_scatter", | |
| "keys": "keys", "tmp": "keys_tmp", "histogram": "sort_hist", "groups": 512, "key_bits": 32, | |
| "fallback": "bitonic_sort", "fallback_pipeline": "gs_sort"}}, | |
| {"name": "readback_count", "kind": "copy_buffer", "uses": [["draw_args", "transfer_src"], ["draw_readback", "transfer_dst"]], | |
| "params": {"src": "draw_args", "dst": "draw_readback", "bytes": 16, "host_read": true}}, | |
| {"name": "background", "kind": "raster", | |
| "_doc": "๋ฐฐ๊ฒฝ ํ๋์ ๋ฐ๋ก โ ๋ ์จ๊ฐ ๊ฐ์ฐ์์ ๋ถ๋ถ๊ณผ ํ๋ ๋ถ๋ถ์ ๋ฐ๋ก ๋ณด์ ํ ๋ค ๋ฎ์ ฮฑ ๋ก ํฉ์น๋ค (์๋ฎฌ๋ ์ด์ ํ๋์ ๋ ๋ฒ ์ด๋ก๊ฒ ํ์ง ์๊ฒ)", | |
| "uses": [["weather_ubo", "uniform"], ["background", "color_attachment"]], | |
| "params": {"target": "background", "draws": ["background"]}}, | |
| {"name": "scene", "kind": "raster", | |
| "uses": [["splats", "vertex"], ["keys", "vertex"], ["draw_args", "indirect"], ["color", "color_attachment"], ["depth_acc", "color_attachment"], ["depth", "depth_attachment"]], | |
| "params": {"draws": ["spheres", "gltf_opaque", "splats", "shadows", "gltf_translucent", "lines"]}}, | |
| {"name": "precip", "kind": "raster", | |
| "_doc": "์๋ ๊ณต๊ฐ ๋นยท๋ ์ ์ (precip.vert). ์์ฐจ ์ฃผ๋ณ ์์์ ์๋ ๊ณ ์ โ 6์บ ์ด ๊ฐ์ ๋น๋ฐฉ์ธ, ์์ฐจยท์ฃผํ ๊ธฐ์ธ๊ธฐ. ๊ฑฐ๋ฆฌ ๋ฒํผ๋ก ๊ฐ๋ ค์ง", | |
| "uses": [["depth_acc", "storage_read"], ["weather_ubo", "uniform"], ["precip", "color_attachment"]], | |
| "params": {"target": "precip", "draws": ["precip"]}}, | |
| {"name": "weather", "kind": "compute", | |
| "uses": [["color", "storage_read"], ["depth_acc", "storage_read"], ["precip", "storage_read"], ["background", "storage_read"], ["weather_ubo", "uniform"], ["post", "storage_write"]], | |
| "params": {"pipeline": "weather", "dispatch": "screen", "push_slots": ["precip", "background"]}}, | |
| {"name": "fxaa", "kind": "compute", "optional": true, | |
| "_doc": "ํ๋ฉด ๊ณต๊ฐ AA (๋ฉ์ยท์ ๊ฐ์ฅ์๋ฆฌ). post โ color(๋ค ์ด ์ฅ๋ฉด ์์ ๋น๋ฆผ) โ ๋ค์ ํจ์ค๊ฐ post ๋ก ๋ณต์ฌ. MSAA ๋ ์คํ๋ซ ๋ธ๋ ๋ฉ์ ์ํ ์๋ฐฐ๋ก ๋๋ ค ์ฐ์ง ์๋๋ค", | |
| "uses": [["post", "storage_read"], ["color", "storage_write"]], | |
| "params": {"pipeline": "fxaa", "dispatch": "screen"}}, | |
| {"name": "fxaa_resolve", "kind": "copy_image", "follows": "fxaa", | |
| "uses": [["color", "transfer_src"], ["post", "transfer_dst"]], | |
| "params": {"src": "color", "dst": "post"}}, | |
| {"name": "camera_isp", "kind": "compute", "optional": true, "enabled": false, | |
| "_doc": "์ ฐ์ด๋ ๊ทธ๋ํ(์นด๋ฉ๋ผ ISP). ํฝ์ ๋จ์ ๋ ธ๋๋ง์ด๋ผ post ๋ฅผ ์ ์๋ฆฌ์์ ๊ณ ์น๋ค. ์ผ๊ธฐ: F2 ์ฐฝ ๋๋ sim.json shader_graphs.camera_isp.enabled", | |
| "uses": [["post", "storage_read_write"], ["isp_params", "storage_read"]], | |
| "params": {"pipeline": "camera_isp", "dispatch": "screen", "push_slots": ["isp_params"]}}, | |
| {"name": "camera_mode", "kind": "compute", | |
| "_doc": "์นด๋ฉ๋ผ ๋ชจ๋ (๊น์ด ยท ์๋งจํฑ ยท ํ๋ฐฑ, ๋ทฐ์ด F3). RGB ๋ฉด ์ ฐ์ด๋๊ฐ ๋ฐ๋ก ๋๋๋ค. ๊น์ด = depth_acc ๋ฅผ ์์ผ๋ก, ํ๋ฐฑ = ์ต์ข ์์์ ๋ฃจ๋ง", | |
| "uses": [["post", "storage_read_write"], ["depth_acc", "storage_read"], ["camera", "uniform"]], | |
| "params": {"pipeline": "camera_mode", "dispatch": "screen"}}, | |
| {"name": "to_present", "kind": "none", "uses": [["post", "transfer_src"]], | |
| "_doc": "์คํํ ์ผ์ ์๊ณ , post ๋ฅผ ํ๋ฉดยทPNGยท๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ณต์ฌ(transfer)์ฉ์ผ๋ก ์ ํํ๋ ๋ ธ๋"} | |
| ] | |
| } | |