ããããã(ãªã¢ã«ã¿ã¤ã )ã½ããã¦ã§ã¢ã¬ã³ãã©ã®ä¸ç
- prev: http://d.hatena.ne.jp/mjt/20130421/p1
- ã½ããã¦ã§ã¢ã¬ã³ããªã³ã° vs. ã¹ãã©ã¤ãã使ç¨ããããªã´ã³
ä»ã§ãããPCãæºå¸¯é»è©±ã«ã¯3Dã¬ã³ããªã³ã°ã®ããã®ãã¼ãã¦ã§ã¢ãæè¼ããã®ãæ®éã ããæã¯ãããªãã¨ã¯ç¡ãã®ã§CPUã§é å¼µã£ã¦çµµãã¬ã³ããªã³ã°ãã"ã½ããã¦ã§ã¢ã¬ã³ãã©"ãããªãå¶ä½ãããã
以ä¸ã®ãªã¹ãã¯å
¨ç¶ç¶²ç¾
çã§ãªããã½ããã¦ã§ã¢ã¬ã³ãã©ã¯å
製ã©ã¤ãã©ãªã¨ãã¦ä½ããããã¨ãå¤ãããã¾ãå¤é¨ã«ã©ã¤ã»ã³ã¹ããããããªãã®ã§ç³»èãä½ãã®ãé£ããã
ãã©ãã"å¤è§å½¢"ã¬ã³ããªã³ã°
ãããã3Dã²ã¼ã ã®é»ææã¯ãã©ããã·ã§ã¼ãã£ã³ã°ãªã¬ã³ããªã³ã°ãå¤ãç¨ãããããä¾ãã°ãStar foxã®ãããªSuperFXããããªããªã´ã³ã²ã¼ã ãããã«åé¡ãããã(SuperFXãããã¯ãã ã®RISCããã»ãµã§ãç¹ãã»ãããã以å¤ã«ã°ã©ãã£ãã¯ã¹ã®ããã®å°ç¨ã·ã¹ãã ã¯ç¡ãã)
å¤è§å½¢ãé«éã«å¡ãã¤ã¶ãã ãã§ãå¹¾ã¤ãã®èå¯ã¯å¿
è¦ã«ãªããé常ã«çãã«ã¼ãã®çµã¿åããã«ãªãã®ã§ããã¼ãã¦ã§ã¢ã§ã¢ã¯ã»ã©ã¬ã¼ãããã®ãæ®éã®çºæ³ã¨ãè¨ãããããããPCã²ã¼ã ã§å°ç¨ãã¼ãã¦ã§ã¢ãè¦æ±ããã®ã¯å¦ä½ãªãã®ãã¨ããåé¡ãæãã®ã§ãããªãã«æ´»çºã«éçºãããã
- http://www.4gamer.net/games/000/G000000/20120310017/
- éçºãã¼ã«ã®ç»é¢ãæã
ä¸çåã®3Dãã£ã©ã¯ã¿ã²ã¼ã ã¨ã®å¼ã³å£°ãæãAlone in the dark('92)ã®æ®µéã§ãæ¢ã«ããªã¬ã³ããªã³ã°ã®èæ¯ã«ãã©ããã·ã§ã¼ãã£ã³ã°ã®ãã£ã©ã¯ã¿ã¨ããçµã¿åããã«ãªã£ã¦ããã
ãã®æ代ã¯ãã¾ã ããªããã£ããä¸è§å½¢ã«è½ã¡çãã¦ããªããã¨ãããã
å¶éããããã¯ã¹ãã£ãããã³ã°ã¬ã³ãã© / ä¸åç©
PSãSSã®ç»å ´ã«ããããã¼ãã¦ã§ã¢ã«ããããªã´ã³æç»ãä¸è¬åãã¦ãã
- GBAã®ãããª2Dã³ã³ã½ã¼ã«ããããªãã«ãã£ã
- PCã§ã¯3Dãã¼ãã¦ã§ã¢ãæ®åãã¦ããªãã£ã
ã¨ããçç±ã§ãã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ãªã²ã¼ã ã¯ãããªãã«ä½ããç¶ãããä¾ãã°ãWindowsçãã¼ãã£ãã³(OMG)ã«è³ãã¾ã§ã®Sega PCã·ãªã¼ãºã¯å ¨ã¦ã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ã§ãMMX 166MHzç¨åº¦ã®ã·ã¹ãã ä¸ã§ãQVGAãããããé«ã解å度ã§ãµã¿ã¼ã³ã®ã²ã¼ã ãåä½ããã¦ããã
- Yeti3D
Yeti3D('03)ã¯GBAåãã®ã½ããã¦ã§ã¢ã¬ã³ãã©ã§ã120x80解å度ã§ãããªãã®ãã¬ã¼ã ã¬ã¼ãã®ã¬ã³ããªã³ã°ãå®ç¾ãã¦ãã(GBAã®ãã¼ãã¦ã§ã¢æ¡å¤§æ©è½ã§å
¨ç»é¢ã«è¡¨ç¤ºããããã)ãå¤è§å½¢ããªããã£ããæ¡ç¨ãããã¼ãã«åç
§ã¸ã®ç½®ãæããunrollçã®ã½ããã¦ã§ã¢ã¬ã³ãã©ã«ããè¦ããããã¯ããã¯ãçãè¾¼ãã§ããã
ã¾ããã½ããã¦ã§ã¢ã¬ã³ãã©ã«è¯ãããå¶ç´ - ãã¯ã¹ãã£ã¯64x64ãããéå® - ãæãããã¯ã¹ãã£ã®ãµã¤ãºãéå®ãããã¨ã§ãå¤å½¢ããããªã´ã³ã®æç»ã«ã¼ãã³ã決ãæã¡ã§ä½æã§ããé«éåã§ããã
- Quake II
- http://fabiensanglard.net/quake2/quake2_software_renderer.php - ã¢ã¼ããã¯ãã£ã®è§£èª¬
- http://www.bluesnews.com/abrash/ - Michael Abrashæ¬äººã«ãã解説
Doomã«ç¶ãQuake('96)ãQuakeII('97)ã¯é«éãªã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ã§ã注ç®ãéãããåéæãªãã¸ã§ã¯ãçããµãã¼ããã¦ããã
QuakeIIã®ã½ããã¦ã§ã¢ã¬ã³ãã©ã¯ãåæ¥çã«æ¡ç¨ããããä¸åç©ã®ã¬ã³ãã©ã¨ãã¦ã¯ãã種ã®å°éç¹ã ããã2000å¹´å°ã«å
¥ãã¨çå£ãªPCã²ã¼ã ã¯DirectXãOpenGLã«ããã¬ã³ããªã³ã°ãæ¨æºã¨ãªããã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ã«ã³ã¹ããæãããã¨ã¯ãªããªã£ã¦ãã£ããããããDemo/Introã®é¡ã¨ãã¦ã¯ç¶ãã¦ããããã
ãã®2ã¤ã®ã¬ã³ãã©ã®éè¦ãªå
±éç¹ã¯ãããããFPSã²ã¼ã ã®èæ¯æç»ã®ããã®èå¯ãä¸å¿ã«æ§ç¯ããã¦ãããã¨ã ãããããªã´ã³ãã£ã©ã¯ã¿ã®æç»ã¯ãã¾ãç±å¿ãªèå¯ããªããã¬ã¤ãã£ã¹ãã£ã³ã°ã«ãã£ã¦è¡¨ç¤ºãããããªã´ã³ãå®å
¨ã«å°åºããoverdrawãé¿ãã¤ã¤å¹ççã«ã¬ã³ããªã³ã°ãã¦ããã
Quakeã®ã¬ã³ãã©ãæ
å½ããMichael Abrashã®ã·ãªã¼ãºã¯Githubçã§å
¬éããã¦ãããIBM-PCä¸ã§ã®ã²ã¼ã å¶ä½ãEGA/VGAãã¼ãã¦ã§ã¢ãi286/386ã«é¢ãã¦ããçºã¾ã£ã¦ããå¿
èªã
ãã®ã¸ã§ã³ã»ã«ã¼ããã¯ãåºæã«ä»¥ä¸ã®ããã«æ¸ãã¦ãã:
This book contains many of the original articles that helped launch my programming career. I hope my contribution to the contents of the later articles can provide similar stepping stones for others.
æ±ç¨ã®ã½ããã¦ã§ã¢ã¬ã³ãã©
æ±ç¨ã®ãã¤ã¾ããDirectXãOpenGLãå®è£ ããã¬ã³ãã©ã¯ãã¾ãé¸æè¢ã¯ç¡ããããããç¾ç¶ã§ãããã¤ãã®ã¬ã³ãã©ã¯çãã¦ãã¦ä½¿ç¨ããã¦ããã®ã¯éè¦ãªäºå®ã ããã
Mesaã®Gallium3Dã«ã¯LLVMã使ç¨ããLLVMPipeãæããMacOSãåæ§ã«LLVMã使ç¨ãã¦ããã¨è¨ãããã
Windowsã¯XPã¾ã§ã¯OpenGL1.xã®ã½ããã¦ã§ã¢ã¬ã³ãã©ãæã£ã¦ããããæè¿ã®ãã¼ã¸ã§ã³ã§ã¯DirectXä¸ã«å®è£
ãã¦ãã"ããã"ã
- 追è¨: ãããããè¤éãªããã
- http://www.opengl.org/wiki/Platform_specifics:_Windows
The original Windows 95 did not have OpenGL. You had to download an installer from Microsoft called opengl95a.exe and run it.
Windows 95b came with GL. It included a GL 1.1 software renderer. Windows NT 4 also came with a GL 1.1 software renderer. There were a few screensavers that utilized GL : for example the screensaver with the maze.
The case for Windows 98, 98SE, Me, 2000 was the same : they came with the same GL 1.1 software renderer and the same GL screensavers.
Windows XP changed things a bit. opengl32.dll now utilized Direct3D and since Windows comes with drivers for your hardware, the renderer was fast. The GL screensavers were rewritten to use Direct3D, probably version 8 since Windows XP came with DirectX 8.
For Windows Vista, Microsoft had announced that they will update their renderer to GL 1.4. My own experience shows that it is actually a GL 1.1 software renderer. For some reason, Microsoft decided to remove the Direct3D wrapper from opengl32.dll.
ãããã®ã½ããã¦ã§ã¢OpenGLå®è£ ã¯ããªãå®å ¨ã§ãããã©ã¼ãã³ã¹ã«é¢ãã¦ã¯ãªãã¨ãè¨ããªãããã¤ãã¡ããã¨æ¯è¼ããããæãã
Windows7以éã¯ãWARPã¨å¼ã°ããããªãé«éãªã½ããã¦ã§ã¢ã¬ã³ãã©ãä»å±ãã¦ãããã·ã§ã¼ãçãJITCã«ãã£ã¦å®è¡ãããã(å¾ã«Vistaã«ãæä¾ããã)
WARPã¯DirectX 10å®è£
ã§ãè¦ããã«Windowsã®UIã¯æç»ã«DirectX 10ã使ãããã«ãªã£ãã®ã§ããåããããªæµãã¯Ubuntuã®Unity2Dã«ãè¨ããã
- Pixomatic(DX7-9, custom?)
RAD Game Toolsã«ããPixomaticã¯Michael Abrashãã«ããæ±ç¨ã¬ã³ãã©ã§ãå¾ã«Intelã«å£²å´ãããå½¼ãã¯Larrabeeã®ããã«åãã( http://software.intel.com/en-us/articles/michael-abrash-biography )ãDirectX7(Pixomatic 2)ã¾ãã¯9(å3)ç¸å½ã®ã¬ã³ãã©ã§ãã£ããããã
- SwiftShader(DX9)
SwiftShaderã¯ãTransgamingã«ããDirectX9 APIã®ã½ããã¦ã§ã¢å®è£
ã§ãå½¼ãã¯WARPããé«éã¨ä¸»å¼µãã¦ãããx86ã§ã¯ä¸ææãªã¼ãã³ã½ã¼ã¹ã§ãã£ãSwiftAsmã«ãã£ã¦å½ä»¤åãç´æ¥çæããä»ã®ã¢ã¼ããã¯ãã£ã§ã¯LLVMã使ç¨ããã
TransGamingã¯ãGoogleã®OpenGL ESå®è£
ã§ããANGLEã«ãã³ã³ããªãã¥ã¼ããã¦ãã¦ãSwiftShaderã¯Chromeãã©ã¦ã¶ã«æ¡ç¨ããã¦ããã
- Vincent ES (OpenGL ES 1.x) http://sourceforge.net/projects/ogl-es/
Vincent ESã¯ãªã¼ãã³ã½ã¼ã¹ã®ã½ããã¦ã§ã¢ã¬ã³ãã©ã§ãWindowsCEã§ãã¾ã«ä½¿ç¨ããããç¾ç¶ã¯ç¹ã«æ´æ°ãç¡ãããã«è¦ããããConformant productã¨ãã¦Khronosã«ãæãããã¦ãããã¡ãªã¿ã«ES2ã®å®è£ ãåå¨ããããã ( https://github.com/hmwill/GLESv20 )
- MascotCapsule® Renderion(OpenGL ES 1.x) http://www.hicorp.co.jp/ja/pr3d_rnd.html
Renderionã¯æºå¸¯é»è©±ããªã´ã³ã®é»ææããã½ããã¦ã§ã¢ã¬ã³ãã©ãæä¾ãã¦ããã¨ã¤ãã¢ã¤ã«ããã¬ã³ãã©ã ããããã¨ãã£ãæ¡ç¨äºä¾ã¯è¦³å¯ãã¦ããªããMascot Capsuleã·ãªã¼ãºã«ã¯Mascot Capsule nanoã¨ãããã¤ã³ã³åãã½ããã¦ã§ã¢ã¬ã³ãã©ã¨ããããªãæ¿ããæ´¾çãåå¨ããã
Mascot Capsuleãéè¦ãªã®ã¯ã(ä»ã®ã½ããã¦ã§ã¢ã¬ã³ãã©ã¨ç°ãªãã)ããªã´ã³ãã£ã©ã¯ã¿ã®æç»ã«ç¹åãã¦ããç¹ã ãããã¨ããããV3以åã¯å¹³è¡æå½±ã®ã¿ã§ãªãã¸ã§ã¯ãéã®Zã½ã¼ãããç¡ããè¤æ°ãã£ã©ã¯ã¿ãæç»ãããã¨ããã§ããªãã£ããããã¾ã§å
éçãªå²ãåãã¯ä»ã«ä¾ãç¡ãããã«æããã
ã½ããã¦ã§ã¢ã¬ã³ãã©ã®ä»å¾
äºå®ä¸ãè¿ä»£çãªGPUã¯software definedã¨è¨ãããã¤ã¾ããGPUå´ã®ããã»ãµã«ãã£ã¦ãããªãã®ããªã¥ã¼ã ã®ããã½ããã¦ã§ã¢ãå¦çã§ããããã«ãªã£ãã®ã§ãç¾ç¶ã§ã¯GPUã«ããã¬ã³ããªã³ã°ã§ãã£ã¦ãé¨åçã«ã¯ã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ã¨ãããã
IntelãLarrabeeã«ãã3Dã°ã©ãã£ãã¯ã¹ã¸ã®å±éãé¿ããããã«ãä»å¾ããã°ããã¯ç´ç²ãªã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ã主æµã«è¿ãå²ããã¨ã¯ç¡ãã ããã
ãããã大éã®ãã¼ã¿ãé«éã«å¦çããå¿
è¦ã®ããã½ããã¦ã§ã¢ã¬ã³ããªã³ã°ã¯ãã種ã®"ããã¯"ã§ããããããã®ãã¯ããã¯ããå¾ãããç¥è¦ã¯é常ã«å¤§ããããã«æããã