DirectX 12를 이용한 3D 게임 프로그래밍 입문 참고자료

_

_

본문 내 링크

SharpDX http://sharpdx.org/

DirectX의 최신 문서화 https://msdn.microsoft.com/en-us/library/windows/desktop/dn899121%28v=vs.85%29.aspx

Direct3D 12 예제 프로그램 https://github.com/Microsoft/DirectX-Graphics-Samples

DirectX Math https://github.com/Microsoft/DirectXMath

x64 CPU SSE2 http://en.wikipedia.org/wiki/SSE2.

DXGI Overview http://msdn.microsoft.com/en-us/library/windows/desktop/bb205075%28v=vs.85%29.aspx

DirectX Graphics Infrastructure: Best Practices: http://msdn.microsoft.com/en-us/library/windows/desktop/ee417025%28v=vs.85%29.aspx

DXGI 1.4 Improvements: https://msdn.microsoft.com/en-us/library/windows/desktop/mt427784%28v=vs.85%29.aspx

MSDN의 “Residency” 항목 https://msdn.microsoft.com/en-us/library/windows/desktop/mt186622%28v=vs.85%29.aspx

유명 3D 모형 제작기: 3D Studio Max(http://usa.autodesk.com/3dsmax/), LightWave 3D(https://www.lightwave3d.com/ ), Maya(http://usa.autodesk.com/maya/), Softimage|XSI(http://www.softimage.com), Blender(http://www.blender.org/)

복셀 전역 조명 http://on-demand.gputechconf.com/gtc/2014/presentations/S4552-rt-voxel-basedglobal-illumination-gpus.pdf

DDS Adobe Photoshop 플러그인 https://developer.nvidia.com/nvidia-texture-toolsadobe-photoshop

texconv 프로그램 https://github.com/Microsoft/DirectXTex/wiki/Texconv

texassemble https://github.com/Microsoft/DirectXTex/wiki/Texassemble

가벼운 DDS 파일 적재 라이브러리 https://github.com/Microsoft/DirectXTK/wiki/DDSTextureLoader

척 월번 계산 셰이더 관련 발표 자료 http://blogs.msdn.com/b/chuckw/archive/2010/07/14/directcompute.aspx

Microsoft Channel 9 계산 셰이더 프로그래밍 강의 동영상 http://channel9.msdn.com/tags/DirectCompute-Lecture-Series/

NVIDIA CUDA 교육 자료 http://developer.nvidia.com/cuda-training

베지에 https://www.jasondavies.com/animated-bezier/

Terragen http://www.planetside.co.uk/

현재 카메라 위치에서 시야각 90°로 주변 환경의 여섯 이미지를 렌더링해 주는 유용한 Terragen 스크립트 https://developer.valvesoftware.com/wiki/Skybox_(2D)_with_Terragen

ATI Radeon HD 2000 Programming Guide http://developer.amd.com/media/gpu_assets/ATI_Radeon_HD_2000_programming_guide.pdf (깨진 링크)

입방체 맵 주변 환경 분산광 계산 https://developer.nvidia.com/gpugems/GPUGems2/gpugems2_chapter10.html

기하 셰이더 기하구조 복제 성능 관련: http://docs.nvidia.com/gameworks/content/gameworkslibrary/graphicssamples/opengl_samples/cascadedshadowmapping.htm

Photoshop 법선 맵 필터 http://developer.nvidia.com/nvidia-texture-toolsadobe-photoshop

법선 맵 생성 도구 http://www.crazybump.com/ , http://shadermap.com/home/

고해상도 메시로부터 법선 맵을 만들어 주는 도구 http://www.nvidia.com/object/melody_home.html

주변광 차폐 맵 생성 도구 http://www.xnormal.net

유니코드 http://unicode.org/

HLSL의 모든 개별 벡터 및 행렬 형식은 자동으로 정의된 vector<>와 matrix<>의 별칭 https://msdn.microsoft.com/ko-kr/library/windows/desktop/bb509702%28v=vs.85%29.aspx

부록 E

[Angel00] Angel, Edward, Interactive Computer Graphics: A Top-Down Approach with OpenGL, Second Edition, Addison-Wesley, 2000.

[ATI1] ATI. “Dark Secrets of Shader Development or What Your Mother Never Told You About Shaders” 강연. 발표 자료는 http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Dark_Secrets_of_shader_Dev-Mojo.pdf에 있음.

[Bilodeau10] Bilodeau, Bill. “Efficient Compute Shader Programming,” Game Developers Conference, AMD 슬라이드 발표 자료, 2010. (http://developer.amd.com/gpu_assets/Efficient%20Compute%20Shader%20Programming.pps)

[Bilodeau10b] Bilodeau, Bill. “Direct3D 11 Tutorial: Tessellation,” Game Developers Conference, AMD 슬라이드 발표 자료, 2010. (http://developer.amd.com/gpu_assets/Direct3D%2011%20Tessellation%20Tutorial.ppsx)

[Blinn78] Blinn, James F., Martin E. Newell. “Clipping using Homogeneous Coordinates.” In Computer Graphics (SIGGRAPH ’78 Proceedings), pp. 245-251, New York, 1978.

[Blinn96] Blinn, Jim, Jim Blinn’s Corner: A Trip Down the Graphics Pipeline, Morgan Kaufmann Publishers, Inc, San Francisco CA, 1996.

[Boyd08] Boyd, Chas. “DirectX 11 Compute Shader,” Siggraph 슬라이드 발표 자료, 2008. (http://s08.idav.ucdavis.edu/boyd-dx11-compute-shader.pdf)

[Boyd10] Boyd, Chas. “DirectCompute Lecture Series 101: Introduction to DirectCompute,” 2010. (http://channel9.msdn.com/Blogs/gclassy/DirectCompute-Lecture-Series-101-Introduction-to-DirectCompute)

[Brennan02] Brennan, Chris. “Accurate Reflections and Refractions by Adjusting for Object Distance,” Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks. Wordware Publishing Inc., 2002. 번역서는 류광, 최지호 옮김, Direct3D ShaderX 정점 & 픽셀 셰이더 팁과 트릭, 정보문화사, 2003.

[Burg10] Burg, John van der, “Building an Advanced Particle System.” Gamasutra, 2000년 6월. (http://www.gamasutra.com/features/20000623/vanderburg_01.htm)

[Crawfis12] Crawfis, Roger. “Modern GPU Architecture.” 강의 자료는 http://web.cse.ohio-state.edu/˜crawfis/cse786/ReferenceMaterial/CourseNotes/Modern%20GPU%20Architecture.ppt에 있음.

[De berg00] de Berg, M., M. van Kreveld, M. Overmars, O. Schwarzkopf. Computational Geometry: Algorithms and Applications Second Edition. Springer-Verlag Berlin Heidelberg, 2000.

[Dietrich] Dietrich, Sim. “Texture Space Bump Maps.” (http://developer.nvidia.com/object/texture_space_bump_mapping.html)

[Dunlop03] Dunlop, Robert. “FPS Versus Frame Time,” 2003. (http://www.mvps.org/directx/articles/fps_versus_frame_time.htm)

[DirectXMath] DirectXMath 온라인 문서화, Microsoft Corporation. http://msdn.microsoft.com/en-us/library/windows/desktop/hh437833(v=vs.85).aspx

[DXSDK] Microsoft DirectX June 2010 SDK 문서화, Microsoft Corporation.

[Eberly01] Eberly, David H., 3D Game Engine Design, Morgan Kaufmann Publishers, Inc, San Francisco CA, 2001.

[Engel02] Engel, Wolfgang (엮음), Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks, Wordware Publishing, Plano TX, 2002. 번역서는 류광, 최지호 옮김, Direct3D ShaderX 정점 & 픽셀 셰이더 팁과 트릭, 정보문화사, 2003.

[Engel04] Engel, Wolfgang (엮음), ShaderX2: Shader Programming Tips & Tricks with DirectX 9, Wordware Publishing, Plano TX, 2004.

[Engel06] Engel, Wolfgang (엮음), ShaderX5: Shader Advanced Rendering Techniques, Charles River Media, Inc., 2006.

[Engel08] Engel, Wolfgang (엮음), ShaderX6: Shader Advanced Rendering Techniques, Charles River Media, Inc., 2008.

[Farin98] Farin, Gerald, Dianne Hansford. The Geometry Toolbox: For Graphics and Modeling. AK Peters, Ltd., 1998.

[Fernando03] Fernando, Randima, Mark J. Kilgard. The CG Tutorial: The Definitive Guide to Programmable Real-Time Graphics. Addison-Wesley, 2003.

[Fraleigh95] Fraleigh, John B., Raymond A. Beauregard. Linear Algebra 3rd Edition. Addison-Wesley, 1995.

[Friedberg03] Friedberg, Stephen H., Arnold J. Insel, Lawrence E. Spence. Linear Algebra Fourth Edition. Pearson Education, Inc., 2003.

[Fung10] Fung, James. “DirectCompute Lecture Series 210: GPU Optimizations and Performance,” 2010. (http://channel9.msdn.com/Blogs/gclassy/DirectCompute-Lecture-Series-210-GPU-Optimizations-and-Performance)

[Halliday01] Halliday, David, Robert Resnick, Jearl Walker. Fundamentals of Physics: Sixth Edition. John Wiley & Sons, Inc, 2001.

[Hausner98] Hausner, Melvin. A Vector Space Approach to Geometry. Dover Publications, Inc. (www.doverpublications.com), 1998

[Hoffmann75] Hoffmann, Banesh. About Vectors. Dover Publications, Inc. (www.doverpublications.com), 1975.

[Isidoro06] Isidoro, John R. “Shadow Mapping: GPU-based Tips and Techniques,” Game Developers Conference, ATI 슬라이드 발표 자료, 2006. (http://developer.amd.com/media/gpu_assets/Isidoro-ShadowMapping.pdf)

[Isidoro06b] Isidoro, John R. “Edge Masking and Per-Texel Depth Extent Propagation for Computation Culling During Shadow Mapping,” ShaderX 5: Advanced Rendering Techniques. Charles River Media, 2007.

[Kilgard99] Kilgard, Mark J., “Creating Reflections and Shadows Using Stencil Buffers,” Game Developers Conference, NVIDIA 슬라이드 발표 자료, 1999. (http://developer.nvidia.com/docs/IO/1407/ATT/stencil.ppt)

[Kilgard01] Kilgard, Mark J. “Shadow Mapping with Today’s OpenGL Hardware,” Computer Entertainment Software Association’s CEDEC, NVIDIA 발표 자료, 2001. (http://developer.nvidia.com/object/cedec_shadowmap.html)

[Kryachko05] Kryachko, Yuri. “Using Vertex Texture Displacement for Realistic Water Rendering,” GPU Gems 2: Programming Techniques for High-Performance Graphics and General Purpose Computation. Addison-Wesley, 2005.

[Kuipers99] Kuipers, Jack B. Quaternions and Rotation Sequences: A Primer with Applications to Orbits, Aerospace, and Virtual Reality. Princeton University Press, 1999.

[Lengyel02] Lengyel, Eric, Mathematics for 3D Game Programming and Computer Graphics. Charles River Media, Inc., 2002. 번역서는 류광 옮김, 3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학, 정보문화사, 2003.

[Möller08] Möller, Tomas, Eric Haines. Real-Time Rendering: Third Edition. AK Peters, Ltd., 2008.

[Mortenson99] Mortenson, M.E. Mathematics for Computer Graphics Applications. Industrial Press, Inc., 1999.

[NVIDIA05] Antialiasing with Transparency, NVIDIA Corporation, 2005. (ftp://download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/Direct3D9/src/AntiAliasingWithTransparency/docs/AntiAliasingWithTransparency.pdf)

[NVIDIA08] GPU Programming Guide GeForce 8 and 9 Series, NVIDIA Corporation, 2008. (http://developer.download.nvidia.com/GPU_Programming_Guide/GPU_Programming_Guide_G80.pdf)

[NVIDIA09] NVIDIA’s Next Generation CUDA Compute Architecture: Fermi, NVIDIA Corporation, 2009. (http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf)

[NVIDIA10] DirectCompute Programming Guide, NVIDIA Corporation, 2007–2010 (http://developer.download.nvidia.com/compute/DevZone/docs/html/DirectCompute/doc/DirectCompute_Programming_Guide.pdf)

[Thibieroz13] Thibieroz, Nick, Holger Gruen. “DirectX Performance Reloaded.” Game Developers Conference 2013 강연.

[Oliveira10] Oliveira, Gustavo. “Designing Fast Cross-Platform SIMD Vector Libraries,” 2010. (http://www.gamasutra.com/view/feature/4248/designing_fast_crossplatform_simd_.php)

[Parent02] Parent, Rick. Computer Animation: Algorithms and Techniques. Morgan Kaufmann Publishers (www.mkp.com), 2002.

[Pelzer04] Pelzer, Kurt. “Rendering Countless Blades of Waving Grass,” GPU Gems: Programming Techniques, Tips, and Tricks for Real-Time Graphics. Addison-Wesley, 2004.

[Pettineo12] Pettineo, Matt. “A Closer Look at Tone Mapping,” 2012. (https://mynameismjp.wordpress.com/2010/04/30/a-closer-look-at-tone-mapping/)

[Petzold99] Petzold, Charles, Programming Windows, Fifth Edition, Microsoft Press, Redmond WA, 1999.

[Prosise99] Prosise, Jeff, Programming Windows with MFC, Second Edition, Microsoft Press, Redmond WA, 1999.

[Reinhard10] Reinhard, Erik, et al, High Dynamic Range Imaging, Second Edition, Morgan Kaufmann, 2010.

[Santrock03] Santrock, John W. Psychology 7. The McGraw-Hill Companies, Inc., 2003.

[Savchenko00] Savchenko, Sergei, 3D Graphics Programming: Games and Beyond, Sams Publishing, 2000.

[Schneider03] Schneider, Philip J., David H. Eberly. Geometric Tools for Computer Graphics. Morgan Kaufmann Publishers (www.mkp.com), 2003.

[Snook03] Snook, Greg. Real-Time 3D Terrain Engines using C++ and DirectX9. Charles River Media, Inc., 2003.

[Story10] Story, Jon, Cem Cebenoyan, “Tessellation Performance,” Game Developers Conference, NVIDIA 슬라이드 발표 자료, 2010. (http://developer.download.nvidia.com/presentations/2010/gdc/Tessellation_Performance.pdf)

[Sutherland74] Sutherland, I. E., G. W. Hodgeman. Reentrant Polygon Clipping. Communications of the ACM, 17(1):32-42, 1974.

[Tuft10] Tuft, David. “Cascaded Shadow Maps,” 2010. (http://msdn.microsoft.com/en-us/library/ee416307%28v=vs.85%29.aspx)

[Uralsky05] Uralsky, Yuri. “Efficient Soft-Edged Shadows Using Pixel Shader Branching,” GPU Gems 2: Programming Techniques for High-Performance Graphics and General Purpose Computation. Addison-Wesley, 2005.

[Verth04] Verth, James M. van, Lars M. Bishop. Essential Mathematics for Games & Interactive Applications: A Programmer’s Guide. Morgan Kaufmann Publishers (www.mkp.com), 2004.

[Vlachos01] Vlachos, Alex, Jörg Peters, Chas Boyd, Jason L. Mitchell, “Curved PN Triangles,” ACM Symposium on Interactive 3D Graphics 2001, pp. 159-166, 2001. (http://alex.vlachos.com/graphics/CurvedPNTriangles.pdf)

[Watt92] Watt, Alan, Mark Watt, Advanced Animation and Rendering Techniques: Theory and Practice, Addison-Wesley, 1992.

[Watt00] Watt, Alan, 3D Computer Graphics, Third Edition, Addison-Wesley, 2000.

[Watt01] Watt, Alan, Fabio Policarpo, 3D Games: Real-time Rendering and Software Technology, Addison-Wesley, 2001.

[Weinreich98] Weinreich, Gabriel, Geometrical Vectors. The University of Chicago Press, Chicago, 1998.

[Whatley05] Whatley, David. “Toward Photorealism in Virtual Botany,” GPU Gems 2: Programming Techniques for High-Performance Graphics and General Purpose Computation. Addison-Wesley, 2005.

[Wloka03] Wloka, Matthias. “Batch, Batch, Batch: What Does It Really Mean? ” Game Developers Conference 2003 강연. http://developer.nvidia.com/docs/IO/8230/BatchBatchBatch.pdf