๋ฐ˜์‘ํ˜•

Node Editor UI๋ž€?

ํ˜น์‹œ ๋ธ”๋ Œ๋”(Blender)๋ผ๋Š” 3D CG ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ณธ ์ ์ด ์žˆ๋‚˜์š”? ์ด ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์˜คํ”ˆ ์†Œ์Šค๋กœ ์†Œ์Šค๊ฐ€ ๊ณต๊ฐœ๋˜์–ด ์žˆ๊ณ , ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Node Editor๋ž‘ ๋ฌด์Šจ ์—ฐ๊ด€์ด ์žˆ๊ธธ๋ž˜ ๋ธ”๋ Œ๋” ์–˜๊ธฐ๋ฅผ ๊บผ๋ƒˆ์„๊นŒ์š”?

๋ธ”๋ Œ๋”์˜ Node Editor. ์ถœ์ฒ˜: Blender Manual
๋ธ”๋ Œ๋”์˜ Node Editor. ์ถœ์ฒ˜: Blender Manual

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด, ๋ธ”๋ Œ๋” ๋‚ด์˜ ์กฐ์ž‘์„ ๋…ธ๋“œ(Node) ๋‹จ์œ„ ํŽธ์ง‘์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. Render Layers ๋…ธ๋“œ์™€ Gamma ๋…ธ๋“œ, Composite ๋…ธ๋“œ์˜ ์ž…/์ถœ๋ ฅ์„ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์ด์ฃ . ์ด๋Ÿฌํ•œ ํŽธ์ง‘ ๊ธฐ๋Šฅ์„ ๋…ธ๋“œ ์—๋””ํ„ฐ(Node editor)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

.Net ๊ธฐ๋ฐ˜ ๋…ธ๋“œ ์—๋””ํ„ฐ

์ €๋„ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ .Net Form ๊ธฐ๋ฐ˜์—์„œ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ Node Editor๋ฅผ ๋งŒ๋“ค๊ธฐ๋Š” ๋ฌด๋ฆฌ์ด๋ฏ€๋กœ ์ œ๊ณต๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ฐพ์•„๋ดค๋Š”๋ฐ์š”. ๊ทธ์ค‘ ๊ทธ๋‚˜๋งˆ ์ ‘๊ทผํ•˜๊ธฐ ์‰ฌ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

WPF Node Network

Node Network ํ”„๋ ˆ์ž„์›Œํฌ๋Š” .Net WinForm์€ ์•„๋‹ˆ์ง€๋งŒ WPF ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋…ธ๋“œ ์—๋””ํ„ฐ์ž…๋‹ˆ๋‹ค.

https://github.com/Wouterdek/NodeNetwork

 

GitHub - Wouterdek/NodeNetwork: A C# library with a WPF node editor component based on ReactiveUI

A C# library with a WPF node editor component based on ReactiveUI - GitHub - Wouterdek/NodeNetwork: A C# library with a WPF node editor component based on ReactiveUI

github.com

์šฐ์„  ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ฐ๋ชจ ์• ๋‹ˆ๋ฉ”์ด์…˜๋ถ€ํ„ฐ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ณ„์‚ฐ๊ธฐ ๋ฐ๋ชจ
๊ณ„์‚ฐ๊ธฐ ๋ฐ๋ชจ
Shader ๋ฐ๋ชจ
Shader ๋ฐ๋ชจ

๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์›€์ง์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŒŒ๋ผ๋ฏธํ„ฐ ์ œ์–ด์™€ ์ž…/์ถœ๋ ฅ ์—ฐ๊ฒฐ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘์€ ์ผ๋ฐ˜์ ์ธ ๋…ธ๋“œ ์—๋””ํ„ฐ์˜ ๋™์ž‘๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์™ธ ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • .Net Framework 4.7.2์™€ .Net Core 3.1 ์ด์ƒ
  • WPF ๊ธฐ๋ฐ˜
  • MVVM ๊ตฌ์กฐ๋กœ ๋Œ€ํ™”ํ˜• ์ปจํŠธ๋กค ๊ตฌ์ถ•
  • ํŒจ๋‹(panning), ํ™•๋Œ€/์ถ•์†Œ(zooming) ์ง€์›
  • ๋ ˆ์ด์•„์›ƒ ์ž๋™ ์ œ์–ด
  • ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ (์ƒ‰์ƒ, ํฌํŠธ ๋ชจ์–‘, ์ปจํŠธ๋กค ์ถ”๊ฐ€, ๊ทธ๋ฃนํ™” ๋“ฑ)
  • ์•„ํŒŒ์น˜(Apache) 2.0 ๋ผ์ด์„ ์Šค

Code Generator ์˜ˆ์ œ. ์ถœ์ฒ˜: NodeNetwork Documentation
Code Generator ์˜ˆ์ œ. ์ถœ์ฒ˜: NodeNetwork Documentation

ํ•ด๋‹น ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ํŽ˜์ด์ง€์— ์ž์„ธํžˆ ๋‚˜์™€์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”ํ›„ ๋”ฐ๋กœ ๋‹ค๋ฃจ๊ธฐ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

https://wouterdek.me/NodeNetwork/doc

 

NodeNetwork

A node editor component library for C# WPF using ReactiveUI.

wouterdek.me

๋ช‡ ๊ฐ€์ง€ ์‚ฌ์šฉํ•ด๋ณด๋ฉฐ ๋Š๋‚€ ์•„์‰ฌ์šด ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ์˜ ๋”๋ธ” ํด๋ฆญ ์ด๋ฒคํŠธ ๋ฏธ์ง€์›
  • WinForm ๋ฏธ์ง€์›

ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋งŽ์€ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ, ๋…ธ๋“œ๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜์—ฌ ๋”ฐ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋”๋ธ” ํด๋ฆญ ์ด๋ฒคํŠธ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋”๊ตฐ์š”. ์ด ๊ฒฝ์šฐ, ๊ทธ๋ฃน ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ, Node Network๋Š” WPF๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ข€ ๋” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด WinForm ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์œผ๋‚˜ ๊ทธ ์ ์ด ์•„์‰ฌ๋”๊ตฐ์š”.

๊ทธ ์™ธ์—, ๋‹น์—ฐํ•˜์ง€๋งŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•™์Šต์—๋„ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋น„ํ•ด ์ ‘๊ทผ์ด ์‰ฌ์›Œ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•  ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ์š”. ์ƒ๊ฐ๋ณด๋‹ค ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ๋‚ด์šฉ๋„ ๋งŽ๊ณ , ํ•ด๋‹น GitHub ์‚ฌ์ดํŠธ ์™ธ์— ์˜ˆ์ œ ์ฝ”๋“œ๋‚˜ ์ž๋ฃŒ๋ฅผ ๊ตฌํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์•„ ๋…ํ•™ํ•˜๋Š”๋ฐ ์• ๋จน์„ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•