原始碼為Releases目錄中的檔案
展示影片 : Youtebe
簡報介紹 : PPT
GAMES101: 现代计算机图形学入门-闫令琪:屬於理論課程,從投影轉換到紋理貼圖,再到光線追蹤與進階研究
GAMES202: 高质量实时渲染Real-Time High Quality Rendering
CS 148 Introduction to Computer Graphics and Imaging
MIT 6.837 Computer Graphics (Fall 2003)
CS291A: Real-Time High Quality Rendering
參考:
- Fundamentals Of Computer Graphics - Peter Shirley, Steve Marschner
- Real-Time Rendering 3rd
- C++ primer:link
其他在Project中,快捷鍵"g+b"
Soft Render 理想目標:
- 投影(攝影機、裁切)
- 貼圖(Mipmap、noraml mapping、雙線性採樣)
- 光源(環境光、反射)
- 陰影(硬陰影、軟陰影)
- 條件著色(Z-buffer、Alpha blending)
- 反鋸齒(MSAA)
目前大概是打算這樣前進
- win api與windows建立視窗程式的流程與原理
- 用C++在
DirectX/OpenGL中繪製圖形(改用WinAPI GDI) - 畫點、線DrawLine: DDA/Bresenham
- Transformation Matrices
- FillTriangle/Triangle rasterization
- 基本線框模型(正方體、三角體)
- Perspective projection
- Backface Culling 本質上是光線法向量夾角
- Basice Diffuse Reflection
- Camera moveing
- Clipping
- Z-buffer
- Line/Tri RGB gradient
- 三角重心插值轉換
- RGB三點插值三角形
- 投影轉換的1/z,投影產生的非線性問題
- 合併z-buffer & texture & 投影轉換
- 圖片讀取 & 貼圖載入
- Blender編輯紋理模型與讀取
- Ground Shading 頂點法向量差值
- normap mapping 法向量貼圖
- Phone Shading 像素法向量差值 之後可使用normap mapping
- 簡易Pipeline
- Wireframe Render
- Accelerated Half-Space Triangle Rasterization
- Shadow mapping
- 複數平面
- 四元數旋轉變換
- 以傅立葉轉換分析圖片與採樣
詳細可參考"其他"倒數三個連結
MSVC STL source code:https://github.com/microsoft/STL gcc source code:https://github.com/gcc-mirror/gcc
理論:
- 3Blue1Brown 線性代數的本質: https://www.bilibili.com/video/BV1ys411472E
- Introduction to Computer Graphics-Projection and Viewing: http://math.hws.edu/graphicsbook/c3/s3.html
- songho Rendering Pipeline: http://www.songho.ca/opengl/index.html
- how OpenGL works: software rendering:Github
- 帽捲-電腦圖學01-Transformation:Article
- Computer Graphics from scratch:Article
- ScratchaPixel : https://www.scratchapixel.com
- 二圈妹圖形學筆記:知乎
實作:
- WIN32 BASIC:How to program a game in C++
- Code-It-Yourself! 3D Graphics Engine: Youtube
- 3D Software Rendering:Youtube
- 3D Game Engine Development Tutorial:Youtube
- C++ 3D DirectX Programming:Youtube
- 软渲染器Soft Renderer:https://yangwc.com/categories/Soft-Renderer/
- Brian Will:https://www.youtube.com/channel/UCseUQK4kC3x2x543nHtGpzw
參考的Github:
- SRender : https://github.com/SunXLei/SRender
- mini3d : https://github.com/skywind3000/mini3d
單篇內容:
- OpenGL投影矩阵(Projection Matrix)构造方法
- 現代啟示錄 正交投影──威力強大的線代工具
- 電腦圖學渲染管線
- Math for Game Programmers: Understanding Homogeneous Coordinates:youtube
- 透视矫正插值和图形渲染管线总结-孙小磊
書單:allenchou.net/2014/03/book-list-game-devs/
2020/10/15:
Software Rasterization Algorithms for Filling Triangles
11/24:
12/02 clipping
12/25 Z-buffer & basic texture
1/21 texture
4/08 改用tinyrenderer
04/29
2021/06 basic shader & Normal mapping & Render pipeline
07/03 wireframe render
筆記文章:
Shader重心座標的線框繪製
11/5 Fixed Camera & Perspective
Now Matrix: M(ViewPort)M(Projection)M(View)M(Model)Vertex
M(Pjorection) = M(ortho)M(persptive)
naive interpolation
Perspective Correct Interpolation and Vertex Attributes
JavaScript建議用VSCode
C++用VisualStudio2019、VScode+GCC+CM
應該會重點圍繞在這本書上,Tricks of the 3D Game Programming Gurus - Advanced 3D Graphics and Rasterization
有些內容過時了,可能要慢慢研究替待方法
Practical Rendering and Computation with Direct3D 11
https://github.com/skywind3000/mini3d
https://github.com/sdlwlxf1/tinyEngine
https://github.com/zauonlok/renderer
https://github.com/QianMo/Real-Time-Rendering-3rd-CN-Summary-Ebook
https://github.com/ssloy/tinyrenderer
https://github.com/ssloy/tinyraytracer
https://github.com/john-chapman/im3d
https://github.com/tinyobjloader/tinyobjloader
https://github.com/miloyip/game-programmer
https://github.com/utilForever/game-developer-roadmap
https://www.zhihu.com/question/26720808/answer/33885578
https://www.zhihu.com/question/27544895/answer/99021929
https://www.zhihu.com/question/30296764/answer/49978571
基礎練習,大概了解一些數學在繪製中運作的原理,與培養一些感覺
https://github.com/beadcaptain/CodingMath
Q仔數學教室 https://www.youtube.com/playlist?list=PL-QFPCjbXoYHtD13YJ4UPJWCE7p0JSS3v
高一上: 算幾不等式、乘法公式、斜率、多項式函數、餘式定理、因式定理、指數對數
高一下: 數列、等差級數、排列組合、機率、貝式定理
高二上: 三角函數、線性規劃、向量、行列式
高二下: 空間、平面方程式、矩陣、拋橢雙漸
高三上: 期望值、二項分布、信賴區間、三角函數、圓、複數極式、俐美佛
高三下: 微積分
Stepp學院 https://www.youtube.com/channel/UCQSWNKMOSkJN4xYFFaYSrsw
VS2019有時會有編譯快取太大的問題,tool/options/textEditor/C/C++/Advanced "auromatic precompiled header" 把這個選項拉小,像是64MB這樣















