ãRustã§ã¯ãããOpenGLããåæ¥åºçã§è²©å£²ã¹ã¿ã¼ã
æ¨å¹´ãæè¡å人èªã®ããã®ã¤ãã³ããæè¡æ¸å ¸7ãã«ã¦é å¸ãããRustã§ã¯ãããOpenGLãããè£ ããæ°ãã«åæ¥åºçã§è²©å£²éå§ãããã¨ã¨ãªãã¾ããï¼
é»åæ¸ç±çã¯ãã§ã«Amazonã®Kindleã¹ãã¢ããç´ä¼åå±æ¸åºã®Kinoppyãªã©ã§è²©å£²ãã¦ãããç´çã®æ¬ã2æ26æ¥ããAmazonã§è²©å£²ããã¾ãã
販売ãã¦ããã·ã§ããã«é¢ãã¦ã¯ããã¡ãã®ãªã³ã¯ãã確èªãã ããã
ç´çã®æ¸ç±ã«ã¤ãã¦ã¯ãããªã³ããªã³ããã³ãã«ããåºçã®ããããªã³ã©ã¤ã³ã·ã§ããããã®æ³¨æãåãã¦ããå°å·ããããã«çºéãããããªä½å¶ã«ãªã£ã¦ãã¾ãã
æ¸ç±ã®å 容
ããã°ã©ãã³ã°è¨èªã®Rustã«ã¯ãOpenGLã®3Dããã°ã©ãã³ã°ã«åãã¦ããç¹å¾´ãããã¤ãããã¾ãã
- C/C++ã«ãè² ããªãå¦çé度ãåºããããã°ã©ã ã§ããã¬ã¼ã ã¬ã¼ãã60 FPSã§æç»ããããã¨ãã§ãã
- ã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ããªãã®ã§ãç»é¢ãã«ã¯ã¤ããã¨ããªã
- ã¢ãã³ãªè¨èªãªã®ã§ãæ°ããã©ã¤ãã©ãªã®å°å ¥ã容æ
ãã®ãããªå©ç¹ãããæè¿ã§ã¯Rustã«ããã²ã¼ã éçºãæ´»çºã«è¡ãããããã«ãªãããRust Game Development Working Groupãã§ã¯æ次ã®ã¬ãã¼ããçºè¡¨ããããã¨ãè³ãããã¿ãã¦ãã¾ãã
以åãä½æããå人èªçã§ã¯ãOpenGLã®æãåºæ¬çãªã¨ããããå®è£ ãã¹ã¿ã¼ããããå¾ã ã«æ©è½ã追å ãã¦ãããã¨ã§ã段éçã«ã¹ãããã¢ããããªããå¦ã¹ããããªã¹ã¿ã¤ã«ã®æ¸ç±ãç®æãã¾ããã
ä»åã®æ¸ç±ã§ã¯ãå人èªçã®åããã¥ããã£ãã¨ããã«ã¤ã©ã¹ãã追å ãããã説æã®æ¹åãããã»ãã«ãæ°ãã«ç¬¬7ç« ã§ãã¬ã¼ã ãããã¡ã¼ãªãã¸ã§ã¯ã(FBO)ã«ã¤ãã¦ã®è¨äºãå ãã¾ããã
ç»é¢ã«ç´æ¥3Dãªãã¸ã§ã¯ããæç»ããã®ã§ã¯ãªãããã£ããFBOã«æç»ããããã«GLSLã®ã·ã§ã¼ãã¼ãé©ç¨ãããã¨ã§ãæ§ã ãªã¨ãã§ã¯ããããããã¨ãã§ããããã«ãªãã¾ãã ããã«ãã£ã¦ã表ç¾æ¹æ³ã«å¹ ãçã¾ããç»é¢ã®é°å²æ°ãæ ¼æ®µã«è¯ããªãã§ãããã
æ¸ç±ã®ç®æ¬¡
æ¸ç±ã®ãã詳ããç®æ¬¡ãããã«è¨ãã¾ãã
- ã®ã£ã©ãªã¼
- ã¯ããã«
- åæ¥åºçã«å¯ãã¦
- æ³å®èªè
- 使ç¨ããã©ã¤ãã©ãªã¼ã¨ãã©ãããã©ã¼ã
- ã½ã¼ã¹ã³ã¼ãã®ãã¦ã³ãã¼ã
å 責äºé
第 1 ç« éçºç°å¢ã®æºå
- 1.1 Rust ã®ã¤ã³ã¹ãã¼ã«
- 1.2 cargo ã³ãã³ã
- 1.2.1 ããã±ã¼ã¸ãã£ã¬ã¯ããªã¼ã®ä½æ : cargo new
- 1.2.2 ã½ã¼ã¹ã³ã¼ãã®ã³ã³ãã¤ã« : cargo build
- 1.2.3 ããã°ã©ã ã®å®è¡ : cargo run
- 1.3 Hello, World!
第 2 ç« SDL
- 2.1 æºå
- 2.2 ããã°ã©ã ã®ä½æ
- 2.2.1 ã½ã¼ã¹ã³ã¼ãã®å ¨ä½
- 2.2.2 åæå
- 2.2.3 ã¦ã£ã³ãã¦
- 2.2.4 ãã£ã³ãã¹
- 2.2.5 ã¤ãã³ãã«ã¼ã
- 2.3 ããã°ã©ã ã®å®æ
第 3 ç« OpenGL
- 3.1 æºå
- 3.2 ããã°ã©ã ã®ä½æ
- 3.2.1 ã½ã¼ã¹ã³ã¼ãã®å ¨ä½
- 3.2.2 åæå
- 3.2.3 OpenGL ã«ããæç»ã®ä»çµã¿
- 3.2.4 ã·ã§ã¼ãã¼
- 3.2.5 ãã¼ããã¯ã¹ã¢ã¬ã¤ãªãã¸ã§ã¯ãã¨ãã¼ããã¯ã¹ãããã¡ã¼ãªãã¸ã§ã¯ã
- 3.2.6 ä¸è§å½¢ã®æç»
第 4 ç« Dear ImGui
- 4.1 æºå
- 4.2 ããã°ã©ã ã®ä½æ
- 4.2.1 åæå
- 4.2.2 ã¤ãã³ãå¦ç
- 4.2.3 ã¦ã£ã³ãã¦ã®ä½æ
- 4.2.4 ã¦ã£ã¸ã§ããã®çæ
- 4.3 ããã°ã©ã ã®å®æ
- 4.4 å¹æçãªä½¿ãæ¹
第 5 ç« 3D ãªãã¸ã§ã¯ã
- 5.1 ããã°ã©ã ã®ä½æ
- 5.1.1 ã½ã¼ã¹ã³ã¼ãã®å ¨ä½
- 5.1.2 3D ãªãã¸ã§ã¯ãã®é ç¹ãã¼ã¿
- 5.1.3 ãããã°ç¨ãã©ã¡ã¼ã¿ã¼
- 5.1.4 ImGui ã¦ã£ã¸ã§ããã«ãããã©ã¡ã¼ã¿ã¼ã®èª¿æ´
- 5.2 ããã°ã©ã ã®å®æ
- 5.1 ããã°ã©ã ã®ä½æ
第 6 ç« ãã¯ã¹ãã£ã¼
- 6.1 æºå
- 6.2 ããã°ã©ã ã®ä½æ
- 6.2.1 ã½ã¼ã¹ã³ã¼ãã®å ¨ä½
- 6.2.2 ãã¯ã¹ãã£ã¼ã®æºå
- 6.2.3 é ç¹åº§æ¨ãæ³ç·ãã¯ãã«ããã¯ã¹ãã£ã¼åº§æ¨
- 6.2.4 ãã¯ã¹ãã£ã¼ã¨ç §æã追å ããã·ã§ã¼ãã¼
- 6.2.5 ã¦ããã©ã¼ã å¤æ°
- 6.2.6 ãã¯ã¹ãã£ã¼ã®æç»
- 6.3 ããã°ã©ã ã®å®æ
- 6.4 å ã®å¹æ
第 7 ç« ãã¬ã¼ã ãããã¡ã¼ãªãã¸ã§ã¯ã
- 7.1 ããã°ã©ã ã®ä½æ
- 7.1.1 ã½ã¼ã¹ã³ã¼ãã®å ¨ä½
- 7.1.2 ãã¬ã¼ã ãããã¡ã¼ãªãã¸ã§ã¯ãã®æ§æ
- 7.1.3 ãã¬ã¼ã ãããã¡ã¼ãªãã¸ã§ã¯ãã®æºå
- 7.1.4 ãã¬ã¼ã ãããã¡ã¼ã¸ã®æç»
- 7.1.5 ç»é¢ã¸ã®æç»
- 7.1.6 ã·ã§ã¼ãã¼ã«ããã¨ãã§ã¯ã
- 7.2 ããã°ã©ã ã®å®æ
- 7.3 ãã¹ãã¨ãã§ã¯ãã®å¹æ
- 7.1 ããã°ã©ã ã®ä½æ
ãããã«
ã¾ã¨ã
ããRustã§OpenGLããã°ã©ãã³ã°ãå§ãããæ¹ãããããããåèæ¸ã®ä¸ã¤ã¨ãã¦é¸ãã§ããã ãããã¨æãã¾ãï¼
è¬è¾
ãã®ãã³ã¯åæ¥åºçããã«ããã£ã¦ã声ãããã¦ããã ããã¤ã³ãã¬ã¹R&Dã®å±±å æ¬ ç·¨éé·ãã¤ã©ã¹ãã¬ã¼ã¿ã¼ã®ã¯ããããããç´æ¥é¢ãããã¨ã¯ããã¾ããã§ããããã¿ã¤ãã«ãã¶ã¤ã³ãæ ¡æ£ãç·¨éã«ååãã¦ãã ãã£ãæ¹ã ã«æè¬ãããã¾ãã
ç¹ã«ãã¯ãããããã«ã¯ã表ç´ã®ããã¾ã¾ãèãã¦ãã ãããè¦å´ãããããã¾ããã ã¯ãããããããããã ããç½ãç®±ã¯ãã¨ã¦ãæ°ã«å ¥ã£ã¦ããã¾ãï¼
ããã¦ãããã«ã¿ã¤ãã«ãã¶ã¤ã³ã®ãã¶ã¤ãã¼ããã«è¯ããã©ã³ããé¸ãã§ããã ãããããã§ã表ç´ã«éæ³ãããã£ãããã«æãã¾ããããããã¨ããããã¾ããï¼