- Hands-On C++ Game Animation Programming
- Gabor Szauer
- 210字
- 2021-06-30 14:45:51
Vector reflection
Vector reflection can mean one of two things: a mirror-like reflection or a bounce-like reflection. The following figure shows the different types of reflections:

Figure 2.8: A comparison of the mirror and bounce reflections
The bounce reflection is more useful and intuitive than the mirror reflection. To make a bounce projection work, project vector A onto vector B. This will yield a vector that points in the opposite direction to the reflection. Negate this projection and subtract it twice from vector A. The following figure demonstrates this:

Figure 2.9: Visualizing a bounce reflection
Implement the reflect function in vec3.cpp. Don't forget to add the function declaration to vec3.h:
vec3 reflect(const vec3 &a, const vec3 &b) {
float magBSq = len(b);
if (magBSq < VEC3_EPSILON) {
return vec3();
}
float scale = dot(a, b) / magBSq;
vec3 proj2 = b * (scale * 2);
return a - proj2;
}
Vector reflection is useful for physics and AI. We won't need to use reflection for animation, but it's good to have the function implemented in case it is needed.
- iOS Game Programming Cookbook
- jQuery Mobile Web Development Essentials(Third Edition)
- 程序員修煉之道:程序設計入門30講
- Python快樂編程:人工智能深度學習基礎
- R語言數據分析從入門到精通
- Processing互動編程藝術
- Essential Angular
- Learning Salesforce Einstein
- Mastering Android Development with Kotlin
- 零基礎入門學習Python(第2版)
- Learning Continuous Integration with TeamCity
- C# and .NET Core Test Driven Development
- 軟件測試綜合技術
- Python 3 數據分析與機器學習實戰
- Redmine Cookbook