diff --git a/game-programmer-zh-cn.dot b/game-programmer-zh-cn.dot
index d4c623e..a153a4e 100644
--- a/game-programmer-zh-cn.dot
+++ b/game-programmer-zh-cn.dot
@@ -25,7 +25,7 @@ digraph {
toctop [fixedsize=true,width=8, height=3, shape=plaintext,label=<
-游戏程序员的 |
学习之路 |
Milo Yip 2016/12/20 |
+游戏程序员的 |
学习之路 |
Milo Yip 2017/8/7 |
https://github.com/miloyip/game-programmer |
> URL="https://github.com/miloyip/game-programmer"]
@@ -347,7 +347,7 @@ digraph {
cocos2dxbyexample2 [label=< |
Cocos2d-X by Example (2015) |
> URL="https://www.amazon.com/dp/1785288857/"]
- gpalgorithmstechniques [label=< |
Game Programming Algorithms and Techniques (2013) |
> URL="https://www.amazon.com/dp/0321940156/"]
+ gpalgorithmstechniques [label=< |
游戏编程算法与技巧 (2016) |
> URL="https://book.douban.com/subject/26906838/"]
gameprogrammingpatterns [label=< |
游戏编程模式 (2016) |
> URL="https://book.douban.com/subject/26880704/"]
gpgoldenrules [label=< |
Game Programming Golden Rules (2004) |
> URL="https://www.amazon.com/dp/1584503068/"]
crossplatformgp [label=< |
Cross-Platform Game Programming (2005) |
> URL="https://www.amazon.com/dp/1584503793/"]
@@ -507,9 +507,19 @@ digraph {
realtimeshadows [label=< |
实时阴影技术 (2013) |
> URL="https://book.douban.com/subject/25908680/"]
rtvolumegraphics [label=< |
Real-Time Volume Graphics (2006) |
> URL="https://www.amazon.com/dp/1568812663/"]
graphicsprogrammingmethods [label=< |
Graphics Programming Methods (2003) |
> URL="https://www.amazon.com/dp/1584502991/"]
+
+ shaderx [label=< |
ShaderX (1996) |
> URL="https://www.amazon.com/dp/1556220413/"]
+ shaderx2 [label=< |
ShaderX2 (2003) |
> URL="https://www.amazon.com/dp/1556229887/"]
+ shaderx3 [label=< |
ShaderX3 (2004) |
> URL="https://www.amazon.com/dp/1584503572/"]
+ shaderx4 [label=< |
ShaderX4 (2006) |
> URL="https://www.amazon.com/dp/1584504250/"]
+ shaderx5 [label=< |
ShaderX5 (2006) |
> URL="https://www.amazon.com/dp/1584504994/"]
+ shaderx6 [label=< |
ShaderX6 (2008) |
> URL="https://www.amazon.com/dp/1584505443/"]
+ shaderx7 [label=< |
ShaderX7 (2009) |
> URL="https://www.amazon.com/dp/1584505982/"]
+
gpugems [label=< |
GPU精粹 (2006) |
> URL="https://book.douban.com/subject/1480239/"]
gpugems2 [label=< |
GPU精粹2 (2007) |
> URL="https://book.douban.com/subject/2144796/"]
gpugems3 [label=< |
GPU精粹3 (2010) |
> URL="https://book.douban.com/subject/4851196/"]
+
gpupro [label=< |
GPU Pro (2010) |
> URL="https://www.amazon.com/dp/1568814720/"]
gpupro2 [label=< |
GPU Pro 2 (2011) |
> URL="https://www.amazon.com/dp/1568817185/"]
gpupro3 [label=< |
GPU Pro 3 (2012) |
> URL="https://www.amazon.com/dp/1439887829/"]
@@ -517,6 +527,8 @@ digraph {
gpupro5 [label=< |
GPU Pro 5 (2014) |
> URL="https://www.amazon.com/dp/1482208636/"]
gpupro6 [label=< |
GPU Pro 6 (2015) |
> URL="https://www.amazon.com/dp/1482264617/"]
gpupro7 [label=< |
GPU Pro 7 (2016) |
> URL="https://www.amazon.com/dp/149874253X/"]
+
+ gpuzen [label=< |
GPU Zen (2017) |
> URL="https://www.amazon.com/dp/0998822892/"]
pbrt3 [label=< |
Physically Based Rendering (PBRT) 3rd Ed (2016) |
> URL="https://www.amazon.com/dp/0128006455/"]
raytracingfromgroundup [label=< |
光线跟踪算法技术 (2011) |
> URL="https://book.douban.com/subject/6028258/"]
@@ -560,8 +572,10 @@ digraph {
realtimerendering -> rtr3 [arrowhead=normal, style=solid]
realtimerendering -> tricks3dgpgurus
- rtr3 -> graphicsprogrammingmethods -> gpugems -> gpugems2 -> gpugems3 -> gpupro -> gpupro2 -> gpupro3 -> gpupro4 -> gpupro5 -> gpupro6 -> gpupro7
- { rank=same;rtr3; rtvolumegraphics }
+ rtr3 -> graphicsprogrammingmethods -> shaderx -> shaderx2 -> shaderx3 -> shaderx4 -> shaderx5 -> shaderx6 -> shaderx7 -> gpugems -> gpugems2 -> gpugems3 -> gpupro -> gpupro2 -> gpupro3 -> gpupro4 -> gpupro5 -> gpupro6 -> gpupro7 -> gpuzen
+ { rank=same; rtr3; rtvolumegraphics }
+ { rank=same; gpupro; gpupro2; gpupro3; gpupro4 }
+ { rank=same; gpupro5; gpupro6; gpupro7; gpuzen }
rtr3 -> { realtimeshadows; rtvolumegraphics }
realtimeshadows -> graphicsprogrammingmethods [style=invis]
tricks3dgpgurus -> realtimeshadows [style=invis]
@@ -594,7 +608,7 @@ digraph {
cgtop [fixedsize=true,width=8,height=0.01,style=invis,label=""]
cgbottom [fixedsize=true,width=8,height=0.01,style=invis,label=""]
cgtop -> cgbegin [style=invis]
- glassenernotebook2 -> cgbottom [style=invis]
+ gpuzen -> cgbottom [style=invis]
}
subgraph cluster_audio {
@@ -642,12 +656,14 @@ digraph {
physicsforgamedevelopers2 [label=< |
游戏开发物理学 第2版 (2015) |
> URL="https://book.douban.com/subject/26394564/"]
physicsmodeling [label=< |
Physics Modeling for Game Programmers (2004) |
> URL="https://www.amazon.com/dp/1592000932/"]
+ fpbma [label=< |
Foundations of Physically Based Modeling and Animation (2017) |
> URL="https://www.amazon.com/dp/1482234602/"]
gamephysicsenginedev2 [label=< |
游戏物理引擎开发 (2013) |
> URL="https://book.douban.com/subject/25821830/"]
gamephysics2 [label=< |
Game Physics 2nd Ed (2010) |
> URL="https://www.amazon.com/dp/0123749034/"]
collisiondetection3denv [label=< |
Collision Detection in Interactive 3D Environments (2003) |
> URL="https://www.amazon.com/dp/155860801X/"]
rtcollisiondetection [label=< |
实时碰撞检测算法技术 (2010) |
> URL="https://book.douban.com/subject/4861957/"]
gamephysicspearls [label=< |
Game Physics Pearls (2010) |
> URL="https://www.amazon.com/dp/1568814747/"]
+ fluidenginedev [label=< |
Fluid Engine Development (2016) |
> URL="https://www.amazon.com/dp/1498719929/"]
taofluidanimation [label=< |
The Art of Fluid Animation (2015) |
> URL="https://www.amazon.com/dp/1498700209/"]
fluidsimulationforcg2 [label=< |
Fluid Simulation for Computer Graphics 2nd Ed (2015) |
> URL="https://www.amazon.com/dp/1482232839/"]
@@ -662,11 +678,11 @@ digraph {
{ animbegin; phybegin } -> natureofcode
- phyadvanced -> gamephysicspearls
+ phyadvanced -> fpbma -> gamephysicspearls
gamephysicspearls -> collisiondetection3denv -> rtcollisiondetection
gamephysicspearls -> gamephysicsenginedev2 -> gamephysics2
- { animadvanced; phyadvanced } -> fluid -> taofluidanimation -> fluidsimulationforcg2
+ { animadvanced; phyadvanced } -> fluid -> fluidenginedev -> taofluidanimation -> fluidsimulationforcg2
phytop [fixedsize=true,width=8,height=0.01,style=invis,label=""]
phybottom [fixedsize=true,width=8,height=0.01,style=invis,label=""]
@@ -704,6 +720,7 @@ digraph {
rank=same
gameaipro [label=< |
Game AI Pro (2013) |
> URL="https://www.amazon.com/dp/1466565969/"]
gameaipro2 [label=< |
Game AI Pro 2 (2015) |
> URL="https://www.amazon.com/dp/1482254794/"]
+ gameaipro3 [label=< |
Game AI Pro 3 (2017) |
> URL="https://www.amazon.com/dp/1482254794/"]
}
aibegin -> aiforgames2 -> aiintermediate -> aima3 [arrowhead=normal, style=solid]
@@ -712,12 +729,12 @@ digraph {
aima3 -> aimisc
aimisc -> aigpwisdom
aigpwisdom -> aigpwisdom2 -> aigpwisdom3 -> aigpwisdom4
- aigpwisdom4 -> gameaipro -> gameaipro2
+ aigpwisdom4 -> gameaipro -> gameaipro2 -> gameaipro3
aitop [fixedsize=true,width=8,height=0.01,style=invis,label=""]
aibottom [fixedsize=true,width=8,height=0.01,style=invis,label=""]
aitop -> aibegin [style=invis]
- gameaipro2 -> aibottom [style=invis]
+ gameaipro3 -> aibottom [style=invis]
}
subgraph cluster_multiplayer {
diff --git a/game-programmer-zh-cn.jpg b/game-programmer-zh-cn.jpg
index e681818..4234f07 100644
Binary files a/game-programmer-zh-cn.jpg and b/game-programmer-zh-cn.jpg differ
diff --git a/game-programmer-zh-cn.pdf b/game-programmer-zh-cn.pdf
index 8bf04fa..aa6c316 100644
Binary files a/game-programmer-zh-cn.pdf and b/game-programmer-zh-cn.pdf differ
diff --git a/game-programmer-zh-cn.png b/game-programmer-zh-cn.png
index 6881881..930d9b1 100644
Binary files a/game-programmer-zh-cn.png and b/game-programmer-zh-cn.png differ
diff --git a/game-programmer-zh-cn.svg b/game-programmer-zh-cn.svg
index 7727205..b1a4657 100644
--- a/game-programmer-zh-cn.svg
+++ b/game-programmer-zh-cn.svg
@@ -1,198 +1,236 @@
-
-