图形学
3D数学基础 豆瓣
3D Math Primer for Graphics and Game Development
作者: Fletcher Dunn / Ian Parberry 译者: 史银雪 / 陈洪 清华大学出版社 2005 - 7
本书主要研究隐藏在3D几何世界背后的数学问题。3D数学是一门与计算几何相关的学科,计算几何则是研究怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。
本书涵盖了理论知识和C++实现代码。理论部分解释3D中数学和几何之间的关系,列出的技巧与公式可以当做参考手册以方便查找。实现部分演示了怎样用代码来实现这些理论概念。编程示例语言使用的是C++,实际上,本书的理论知识能通过任何编程语言实现。
2024年11月11日 已读
补记,不如新版(白色雪山封面那本)内容多,依旧是基础线代
图形学 数学
OpenGL ES 3.0编程指南 豆瓣
OpenGL ES 3.0 Programming Guide, 2nd Ed.
作者: 金斯伯格 (Dan Ginsburg) / Budi Purnomo 译者: 姚军 机械工业出版社 2015 - 2
2017年8月9日 已读
这本书如果仔细看,能拓展到不少便利知识点 和 优化技巧,对于 ES3.0 较于 ES2.0 的新特性也有较多的介绍,读书笔记:https://github.com/MartinRGB/GLES30_ProgrammingGuide_NDK/wiki
图形学 编程
Android三维程序设计 豆瓣
作者: Prateek Mehta 译者: 周建娟 清华大学出版社 2015
本书详细阐述了与 Android移动设备以及 OpenGL ES开发相关的基本解决方案,主要包括 ES 2.0基础知识、3D建模、 Blender软件应用、纹理和着色、 Tank Fence游戏开发等内容。此外,本书还提供了丰富的示例以及代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
OpenGL ES应用开发实践指南 豆瓣
OpenGL ES 2 for Android
作者: 博泽勒尔 (Kevin Brothaler) 译者: 刘力平 / 苏统华 机械工业出版社 2014 - 9
本书的主要内容:
在本书第一部分,会学习如何创建一个简单的空气曲棍球游戏,包括触控、纹理和基本原理。这个项目会教你如何成功地初始化OpenGL并将数据发送到屏幕上,以及如何使用基本的向量和矩阵数学创建三维世界。你也会学到Android的许多特定细节,比如在Dalvik虚拟机和本地环境之间编码数据(marshal data)以及如何在主线程和渲染线程间安全地传送数据。
在本书第二部分,你就可以在第一部分学习到的知识的基础上开始搭建三维世界中的效果,比如光照和地形渲染,接下来还会学习如何创建可以运行在Android主屏幕(home screen)上的动态壁纸。
本书的读者对象:
如果对在Android上开发更高级的图形程序感兴趣,本书就是为你所写的。本书假定你有一些编程经验,包括Java和Android的经验。
2017年2月21日 已读
深受其益,对于 GLSL语言撰写 编译 构建物体对象 建立缓冲区 存取属性数据 渲染 给予了较为清晰的解释,线性代数,几何数学,高等数学方面还需要进一步学习,相关知较为迷糊。 代码地址在:https://github.com/MartinRGB/android-prototype-learning
图形学 编程
图形着色器 豆瓣
作者: 贝利 (Mike Bailey) / 坎宁安 (Steve Cunningham) 译者: 刘鹏 清华大学出版社 2013 - 4
本书详细阐述了与着色器程序设计相关的高效解决方案及相应的数据结构和算法,主要包括固定功能管线、OpenGL着色器的发展、着色器基本概念、使用glman、GLSL着色器语言、光照、顶点着色器、片元着色器和表面外观、片元着色器中的表面纹理、噪声、基于着色器的图像处理、几何着色器的概念和示例、细分着色器、GLSL API、基于着色器的科学可视化计算以及着色器应用等内容。此外,本书还提供了相应的算法、代码以及伪代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
2023年4月28日 已读
绿色兔子盗版,倒是给 shaderfrog 里跑完了大部分案例。。。
图形学 编程
OpenGL着色语言 豆瓣
OpenGL Shading Language
作者: 罗斯特 译者: 天宏工作室 人民邮电 2006 - 10
《OpenGL着色语言》要求读者需要具有一定的数学知识,适合有兴趣编写着色器的应用程序开发人员,可作为GLSL开发者的参考手册。不论专家或着色器编程初学者,都能在《OpenGL着色语言》中发现所需的财富。OpenGL着色语言是一种用于OpenGL的高级过程着色语言,它是近年来图形编程领域中出现的最重要的新型开发技术。OpenGL是业界领先的跨平台3D图形API,而OpenGL着色语言允许开发人员控制图形处理管理线中最重要的阶段。
《OpenGL着色语言》全面覆盖从算法到API,书中更含丰富的API函数参考及顶级的案例分析。全书首先阐述了这种高级编程语言的语法和语义,在此基础上,详尽介绍了一系列着色器实例,同时对底层算法进行了解释,透析从固定功能图形硬件到可编程图形硬件的新时代转变,探究使用新的OpenGL函数调用来创建和操作着色器的方法,最后将该语言与其他著名的商业着色语言进行了比较。
2017年8月1日 已读
能感觉得到是翻译问题,书确实好书,给出的 Shader 优化套路至今不过时。前半部分的渲染管线,讲的过于敷衍。后半部分的可编程着色器部分讲的倒是不错。
图形学 编程
流体动画的计算艺术 豆瓣
作者: 【加拿大】Jos Stam 译者: 叶军涛 / 杨旭波 2018 - 7
流体模拟是在现代游戏开发中生成逼真流体动画的计算机图形技术。《流体动画的计算艺术》解读了并不需要高深物理或数学知识就能开发丰富视觉特效的流体动画技术,讲述了如何通过计算机代码以有趣的方式创建如水、烟雾、火焰和爆炸等效果的流体动画。
《流体动画的计算艺术》介绍了驱动流体动画技术发展的众多概念,以及流体计算的历史背景,涵盖了许多研究领域,包括稳定的流体模拟、曲面流和流的控制。对有抱负的程序员来说,本书非常适合作为学习流体动画程序开发的起点
2021年11月18日 已读
走马观花 介绍了流体运动的基本管理 和其前置数学知识 需要写码验证。全书前置铺垫太多,终点却又虎头蛇尾,可能是功力不够吧
图形学 编程
Computer Animation, Third Edition 豆瓣
作者: Parent, Rick 2012 - 9
Driven by demand from the entertainment industry for better and more realistic animation, technology continues to evolve and improve. The algorithms and techniques behind this technology are the foundation of this comprehensive book, which is written to teach you the fundamentals of animation programming. In this third edition, the most current techniques are covered along with the theory and high-level computation that have earned the book a reputation as the best technically-oriented animation resource. Key topics such as fluids, hair, and crowd animation have been expanded, and extensive new coverage of clothes and cloth has been added. New material on simulation provides a more diverse look at this important area and more example animations and chapter projects and exercises are included. Additionally, spline coverage has been expanded and new video compression and formats (e.g., iTunes) are covered. This title includes companion site with contemporary animation examples drawn from research and entertainment, sample animations, and example code. It describes the key mathematical and algorithmic foundations of animation that provide you with a deep understanding and control of technique. It includes expanded and new coverage of key topics including: fluids and clouds, cloth and clothes, hair, and crowd animation. It explains the algorithms used for path following, hierarchical kinematic modelling, rigid body dynamics, flocking behaviour, particle systems, collision detection, and more.
2023年5月19日 已读
基本上从低阶到高阶,低阶把 GUI 工程中动画技术点的原理(不是具体技术、框架使用什么的)讲明白了,高阶的话也就是个简介,算是比较不错的知识树了
2020需读 图形学 编程
Java动画、图形和极富客户端效果开发 豆瓣
作者: Chet Haase / Romain Guy 译者: 很多 机械工业出版社 2008 - 5
《Java动画、图形和极富客户端效果开发》是一本关于利用图形和动画效果创建更好、更有效和更酷的桌面应用程序的书。《Java动画、图形和极富客户端效果开发》讨论Java基本原理、Swing、Java2D、图形、图形用户界面(GUI)、动画、性能和基于这些基本原理的用于创建漂亮应用程序的高级效果。《Java动画、图形和极富客户端效果开发》第一部分讲述Java图形和用户界面编程的基本概念。第二部分讲述Java2D和Swing中创建极富界面时有用的更多高级主题。第三部分讲述动画的基本原理。第四部分介绍极富客户端效果开发及示例。
2022年10月12日 已读
Romian Guy 算是 Android 体验提升的重要人物之一,他把它的这套 Java UI 构建理念带到了 Android,对比本书构建 UI 和 iOS 的构建 UI 方式,我们就知道一套合理、好用、边缘情况思考详尽的 UI 框架对于开发者是多么的重要。感谢 08 年这些筚路蓝缕的前辈。。。
图形学 编程
Game Engine Black Book: Doom 豆瓣
作者: Fabien Sanglard CreateSpace Independent Publishing Platform 2018
2023年5月17日 已读
非常非常非常美妙的阅读体验,3D 图形游戏早期一些效果的 hack 实现方法,看起来大呼过瘾,“原来是这样”“这也行”。游戏发展越来越快,细分和深度也不断增加,有时候花大量时间只是实现一个特效。而早期不同,阅读此书能感受到上古大神的编程巧思
也可以配合 https://www.youtube.com/@decino 的视频食用,除了此书提到的,还从源码提炼了很多细节
2023年5月17日 评论 UltraViolence - 第一款接触的暴力游戏。Romero 标志性的压抑血腥末日风格,在我眼里依然超越今日的 3A 大作。 在机能有限的 90 年代初,他们将个人英雄主义发挥到极致,像摇滚明星一样的设计师,像苦行僧一样的程序员,游戏史中浪漫的一页。 废话少说,贴上书中一些我觉得有趣的实现细节。 DoomGuy 粘土模型与精灵图 Sketch 之后做粘土模型 Deluxe Paint 中手工上色 BFG 9000 玩具枪镜像 。。。。。。 2 转 3 的地图编辑器 挺巧秒不是吗 然后得到这样的结果 DoomED —— 想用的顺手还是要有 GUI 地形信息 现在已经过时,但是当时大幅优化渲染速度的 BSP Node Tree 碰撞检测(涉及投射类武器和怪物与玩家走位格挡) 你在 ZDaemon 上下的 WAD 是什么 一个压缩包 WAD 的构造设计 素材打包流水线 DOOM 的源码架构 不好意思我不写 C 额,都是我不喜欢写的 5 个 FrameBuffer 0-游戏 1-截屏&背景 2-3 Wipe Animation 4状态栏 Screen[2]&Screen[3] FrameBuffer用在这个标志性的动画里,source: https://www.youtube.com/watch?v=lUsCXSNhHmI DoomGuy 的狞笑要查表 通过生命值+状态查表,写在一长串 if else 里 透视矫正 Merge Visplane 提升性能 合并结果如下 光照 Tricks 声音传播的设计 状态机维护的怪物行为 作者结语 多读 Doom 源码,构建自己的 Doom 吧 DOOM has a special place in my heart. As a 24-year old immigrant in Toronto knowing only Java, this is the codebase I used to learn C and build up my skills. It is the quality level I set myself to emulate. It is thanks to the "University of id Software" as I like to call it that I ended up being noticed by Google and eventually landed a job offer there. Something I once deemed impossible to achieve. The title of the book Game Engine Black Book is an homage to Michael Abrash. The explanations in his Graphics Programming Black Book unlocked the most difficult parts of Quake. Michael’s book features a quote which resonated with me. I have tried to live by it and so far it has served me well. Maybe you will also find it inspiring and it will guide you the same way it has guided me. If you do what you love, and do it as well as you can, good things will eventually come of it. Not necessarily quickly or easily, but if you stick with it, they will come. — Michael Abrash
图形学 编程
Game Engine Black Book: Wolfenstein 3D 豆瓣
作者: Fabien Sanglard CreateSpace Independent Publishing Platform 2017 - 9
How was Wolfenstein 3D made and what were the secrets of its speed? How did id Software manage to turn a machine designed to display static images for word processing and spreadsheet applications into the best gaming platform in the world, capable of running games at seventy frames per seconds? If you have ever asked yourself these questions, Game Engine Black Book is for you. This is an engineering book. You will not find much prose in here (the author’s English is broken anyway.) Instead, this book has only bit of text and plenty of drawings attempting to describe in great detail the Wolfenstein 3D game engine and its hardware, the IBM PC with an Intel 386 CPU and a VGA graphic card. Game Engine Black Book details techniques such as raycasting, compiled scalers, deferred rendition, VGA Mode-Y, linear feedback shift register, fixed point arithmetic, pulse width modulation, runtime generated code, self-modifying code, and many others tricks. Open up to discover the architecture of the software which pioneered the First Person Shooter genre.
2023年5月17日 已读
对图形的渴求是无限的,然而时间是有限的,就导致了机能也是有限的,如何在有限机能下将图形效果最优化的思路值得学习,虽然方法已经过时
2023年5月17日 评论 1992年,德军总部 - 同年,OpenGL 1.0 发布 RayCasting 3D 渲染 高度 = 缩放因子/距离 锁不锁帧? 渲染过程 状态栏的精灵图 RayCasting的优化 souce: https://www.youtube.com/watch?v=nMAgogUyv3E 如何绘制呢? RayMarching,成本有点高 优化1:所有元素都跟网格对其 In a world with some constraints the problem becomes much simpler. If a map is made of aligned square blocks evenly distributed across a grid, a solution yielding 100% accuracy and low runtime overhead is to check for ’hits‘ only when a ray crosses the grid. This was the choice made for Wolfenstein 3D, and explains why the game can only draw perpendicular walls of 8 feet by 8 feet by 8 feet. 优化2:既然都是网格,可以根据轴与光线第一个交点来预测行进路径 Sin/Cos 也要做个表提升性能 I’m no super mathematician– I learned high school math well enough to solve real world problems with it. John Carmack - Programmer 嗯嗯嗯。。。。。。 防鱼眼 高度计算公式 公式类似这个 难道不应该是这个公式吗? 这会导致鱼眼。。。。 解决办法: 差别对比 80386 机能下,渲染 Column 的优化 硬编码的材质缩放函数,减少 CPU 指令开销 2.延迟渲染 cheat1(玩赖 相似的直接不计算了 墙壁材质 Lit + Unlit 制作光感 门与 RayCaster 80386 机能下,渲染 Sprite 的优化 1.缩放器(如上)考虑透明度问题 2.延迟渲染(同上) Buy a 486 :) 命运之矛的防拷贝保护 Joshua 是防拷贝保护的后门 会触发一个致敬 1984 电影 WarGames 的彩蛋
图形学 编程
Foundations of Physically Based Modeling and Animation 豆瓣
作者: Donald H. House / John C. Keyser A K Peters/CRC Press 2017 - 1
Emphasizes the underlying concepts of the field, and is not tied to any particular software package, language, or API.
Develops concepts in mathematics, physics, numerical methods, and software design in a highly integrated way, enhancing both motivation and understanding.
Progressively develops the material over the book, starting from very basic techniques, and building on these to introduce topics of increasing complexity.
Motivates the topics by tying the underlying physical and mathematical techniques directly to applications in computer animation.
2023年6月4日 已读
章4 开始的 粒子系统极为精彩,从非交互的几种modeling 到可交互粒子系统的几种“树”的甄别:kd 八叉 均匀分割,这里补充bsp和 bvh 树,章七的数值积分部分,讲开了欧拉 rk 积分,管中窥豹,结合google java 源码,又有泰勒级数因其高性能在现代图形框架中的应用,联系到现代 gui 系统中的动画部分的优化。章八简单讲解了弹簧形变系统的力分析,拓展出的 ffd(siggraph 86) 方法,章13 开始的流体也很出彩,然而不如一些网络结合代码探讨,欧拉关心网格状态,拉格朗日关心被切割后的粒子,sph 部分并没有仔细探索表面构建和张力形成,flip借助粒子到网格再到粒子关注粒子本身,过程中补习的shadertoy 和 webgl 案例也很有趣,有机会写点笔记,此书值得一写
图形学 编程
Mathematics for 3D Game Programming and Computer Graphics, 3rd Edition 豆瓣
作者: Eric Lengyel Course Technology PTR 2011 - 6
This updated third edition addresses the mathematical skills that a programmer needs to develop a 3D game engine and computer graphics for professional-level games. "Mathematics For 3D Game Programming And Computer Graphics, Third Edition" is suitable for advanced programmers who are experienced with C++, DirectX, or OpenGL. The book begins at a fairly basic level, covering areas such as vector geometry and linear algebra, and then progresses to more advanced topics in 3D game programming such as illumination and visibility determination. It discusses the math first; then it presents how to translate the math into programs. By providing the math behind the effect, screenshots of the results, and samples of code that translate the math so that the effect is achieved, readers get the full story rather than only a mathematical explanation or a set of code samples that are not clearly drawn from mathematical expressions. With this revised edition, almost every chapter will provide a programming example taken directly from a real-world game programming context, and based on programs that have been written and used in game engine development.
The Nature of Code 豆瓣 Goodreads
作者: Daniel Shiffman The Nature of Code 2012 - 12
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital worlds? This book focuses on a range of programming strategies and techniques behind computer simulations of natural systems, from elementary concepts in mathematics and physics to more advanced algorithms that enable sophisticated visual results. Readers will progress from building a basic physics engine to creating intelligent moving objects and complex systems, setting the foundation for further experiments in generative design. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. The book's examples are written in Processing, an open-source language and development environment built on top of the Java programming language. On the book's website (http://www.natureofcode.com), the examples run in the browser via Processing's JavaScript mode.
Real-Time Rendering, Third Edition 豆瓣
作者: Tomas Akenine-Moller / Eric Haines A K Peters/CRC Press 2008 - 7
Thoroughly revised, this third edition focuses on modern techniques used to generate synthetic three-dimensional images in a fraction of a second. With the advent or programmable shaders, a wide variety of new algorithms have arisen and evolved over the past few years.
This edition discusses current, practical rendering methods used in games and other applications. It also presents a solid theoretical framework and relevant mathematics for the field of interactive computer graphics, all in an approachable style.
全局光照技术 豆瓣
作者: 秦春林 电子科技大学出版社 2018 - 4
《全局光照技术:从离线到实时渲染》是一本聚焦于渲染领域的计算机图形学图书,它同时包含了离线和实时渲染的内容,探讨了渲染中最常用的约十种全局光照技术的概念,原理以及相互之间的联系,并以这些全局光照技术为线索介绍了大量计算机图形学相关的基础知识,全书约1000页左右的篇幅,是国内该领域较少的专著之一。
GPU精粹3 豆瓣
GPU Gems 3
作者: 阮亚 译者: 杨柏林 / 陈根浪 清华大学出版社 2010 - 6
《GPU精粹3》是GPU精粹系列畅销书的第三卷,展示了当今最前沿的图形处理单元(GPU)编程技术。现代GPU的可编程性让开发者不仅可以在自己的岗位上迅速脱颖而出,更使得他们可以在非图形应用程序中运用GPU的卓越处理能力,例如,物理仿真、金融分析,甚至是病毒检测——尤其是在cuDA体系结构下。图形学仍然是GPU主要应用领域,通过学习本书,读者会惊喜地发现一些最新的算法,使用它们可以创建非常真实的角色,实现更逼真的光照效果,以及完成绘制后的混合效果。
3D Game Engine Design, Second Edition 豆瓣
作者: David H. Eberly Morgan Kaufmann 2006 - 11
A major revision of the international bestseller on game programming! Graphics hardware has evolved enormously in the last decade. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process of a programmer. 3D Game Engine Design, Second Edition shows step-by-step how to make a shader-based graphics engine and how to tame the new technology. Much new material has been added, including more than twice the coverage of the essential techniques of scene graph management, as well as new methods for managing memory usage in the new generation of game consoles and portable game players. There are expanded discussions of collision detection, collision avoidance, and physics - all challenging subjects for developers.