计算机图形学
【游戏开发面经汇总】- 图形学基础篇
这是一篇超过一万五千字的游戏开发面试经验贴,也是这个面经系列的第二弹,图形学基础篇。本篇文章聚焦于游戏开发岗位面试当中经常考察的进阶知识——图形学,并涵盖了绝大部分游戏开发和图形开发面试中的图形学基础问题。我相信,只要掌握了这篇面经当中的知识点,在下次面试官问你图形学问题的时候,你一定可以做到心中有底、面无惧色。如果你还没有发现这篇文章的价值,也可以先收藏一下,我相信你参加过面试之后,会回来点赞…
球谐函数SH前置知识之拉普拉斯方程
1 前言本文将从拉普拉斯方程的定义、表示和解来简单介绍下该方程的基本定义,为后面推导球谐函数做一下准备。 2 拉普拉斯方程 拉普拉斯方程(Laplace's equation)[1]是一种关于多元函数的二阶偏微分方程。设三元函数 [公式] 满足拉普拉斯方程,则有 [公式]
[摸着原神学图形]AO Volume原理
本文是作者的图形学学习笔记,如有错误疏漏还请各位大佬批评斧正。 参考: [Unity 活动]-游戏专场|从手机走向主机 -《原神》主机版渲染技术分享_哔哩哔哩_bilibili 这里是大佬整理出一份文字版: 放牛的星星:《原神》主机版渲染技术要点和解决方案 1. 引入如下图椅子背后和地上形成了浅浅的AO效果,这是HBAO难以实现的。 [图片] 原神使用了名为AO Volume的方法,参考自2012年GDC《InFamous 2》讲座。于是笔者找到了相关资料作为本文研究…
模板测试(Stencil Test)基本概念
前言当我们通过像素着色器(Pixel Shader,后续简称PS,也可称为片段着色器Fragment Shader)获得像素的颜色后,该颜色值不会被立马写入到Render Target(即Back Buffer,简单来说它就是存储了最终要显示出来的所有像素的颜色值)中。我们还需要一个额外的阶段,该阶段会利用PS输出的颜色值经过一系列的操作来获得最终要渲染的像素颜色。在DirectX中,这个阶段被称为 Output-Merger Stage (输出合并阶段),而在OpenGL中,则被称为…
图形学实验室-实验01-傅立叶材质
一,实验环境和目标1,工具:UE5 源码工程,VS2022,C++,HLSL 2,核心概念:傅立叶级数,BRDF,Uniform Buffer,Texture2DArray 3,目标:在UE5 编辑器中,使用傅里叶级数建模任意BRDF材质(当前只考虑各向同性),存储在如Texture2DArray中。开启傅立叶效果的时候,从CPU上传相应的数据到Shader中,将移动平台对应的BXDF的计算变成了几次纹理采样,开销固定,无视BXDF的复杂性。第一版测试,笔者选用的是UE5 DefautLit BRDF,…
都2022年了,我不允许你还不懂NeRF
NeRF,即Neural Radiance Fields(神经辐射场)的缩写。研究员来自UCB、Google和UCSD。 Title:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis Paper:https://arxiv.org/pdf/2003.08934.pdf Code:https://github.com/bmild/nerf 写这篇文章的动机是,一方面NeRF实在太重要了代表着计算机视觉、图像学结合的未来重要方向;另一方面NeRF对于计算机视觉背景的同学有一定的理解门槛,这篇文章试图以最小背景知识补充、最少理解成本…
图形学基础开篇
线性代数部分虚幻引擎是一款广泛使用的游戏引擎,其涉及到大量的线性代数和几何学的知识。以下是虚幻引擎中常见的线性代数学习: 向量和矩阵:在虚幻引擎中,向量和矩阵是最基本的数学概念。了解向量和矩阵的基本概念和运算是学习虚幻引擎的第一步。坐标系:在虚幻引擎中,有多种不同的坐标系,如世界坐标系、局部坐标系、视图坐标系等。了解这些坐标系的概念和转换方法是非常重要的。矢量运算:在虚幻引擎中,矢量运算是最常用…
游戏引擎新坑开挖,开源!
开源游的游戏引擎基本没有几个能用的。godot算是比较好的,可惜的是godot的代码比较奇怪。godot对外的对象都是个壳,有个不透明的指针引用到真正的对象。这种API墙让理解和修改godot源码都比较困难。 所以我开始了一个新的游戏引擎开发。这个游戏引擎除了渲染外还包含UI模块、物理引擎、编辑器。功能和商业引擎不能比,但至少要代码架构清晰优雅。 为了减少工作量,代码基于已停止的Gameplay引擎源码。Gameplay的代码写的也不是…
现代图形引擎入门指南(八)— 图形API概览
Github Pages 在本章节学习之前,你需要确切地意识到 C/C++ 只是一个将 现实理论 在 计算机中 变现 的 工具 ,并且能够熟练使用它,否则,你应该继续潜修,在没构建好完备的基础知识体系和良好的代码素养之前,笔者认为是没有能力甚至没有资格去进一步学习的。如何界定是一件比较困难的事情,可以当作像玩蜘蛛纸牌 那样思考,最好在觉得无路可走的时候,才请求发牌,因为进入到新的领域确实会提供一些切入点,但也会面临更大的挑战…
【UE4没意思啊】从入门到入坟
1.发布于2020.8.24 2.编辑于2020.11.18 3.编辑于2021.9.15(知乎新增文章目录功能重新排版),更新了部分毛发布料模拟、资源管理、Maya脚本等文章。 4.编辑于2021.9.23,新增GPU、USD、光照、渲染相关文章和回答。 5.编辑于2021.10.9,新增部分网上查找不到的牛人博客技术文章。 6.编辑于2021.10.27,新增灯光、贴图、模型、AO、AA等相关资料。 7.编辑于2022.2.23,新增Houdini、PDG、Noise相关学习资料。 8.编辑于2023.1.2,一年…
我进课题室以前一直以为是做渲染的,即便那时我已听过games101,201也扫了两眼了,我还是认为图形学=渲染。开学以后发现大家做的是模拟还有可视化... 然后去找老师聊天,表明自己对这个方向十分感兴趣,愿意研究下去,导师说,我们不像那些清北浙大的,生源好,我们搞不了太难的东西,当时就感觉要被劝退了。 回去之后想了想,能做成啥样就做成啥样吧,反正做模拟能积累一点代码经验,将来找份糊口的工作也行... 然后就是在网上搜…
前段时间,CCF CAD&CG专委走进高校企业联合活动成功举办,总共举办了三期。邀请的都是图形学相关公司技术负责人。 第一期邀请到来自商汤、腾讯、中望软件、阿里、三维家、字节跳动、虹软、漫格、网易不鸣、粒界等十家名企大厂的创始人/CEO/CTO/技术负责人,为大家介绍计算机图形学的行业应用及前景,也帮助大家更好的完成学习和从业规划,更有第一手的实习招聘信息。 很荣幸,我应邀做了一个计算机图形学在在三维打印中的应用及…
99行代码的《冰雪奇缘》
——闲聊物理引擎,可微编程,SIGGRAPH生产力难题,与Taichi编程语言 2021年4月29日更新:Taichi社区的 VictoriaCity 同学关于相关话题的精美视频介绍:99 行代码写出来的特效,《冰雪奇缘》都用过?揭秘物理引擎中的算法和生产力工具_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 另外,对计算机图形学、编译器、云计算感兴趣的同学,欢迎加入我们的公司, 太极图形! [文章: 太极图形团队公开招聘啦!] 目录序Material Point Method(物…
图形学里面是有核心底层问题没有解的,今天这里说说整个高真实感渲染领域悬而未决并且制约图形学发展的根本问题。 /* IDEA研究院(深圳)正在招C++做区块链/图形学/网络协议的小伙伴,和前微软全球执行副总裁沈向洋博士一起工作,实习,全职,远程都行,简历直接私信我哦,长期有效*/ 在高真实感渲染领域,包括实时渲染(游戏),离线渲染(电影)以及下属的一堆子领域和课题,至今没有一个合理并且实用的渲染质量评价标准。我们没有一…
C++有一个重要的指导思想,叫做zero-overhead principle,一般翻译成「零开销抽象原则」,英文的描述是:What you don’t use, you don’t pay for (in time or space) and further: What you do use, you couldn’t hand code any better. 大概的意思就是说你在使用C++的时候,你不用为你不需要的功能付出时间和空间上的成本;你需要使用某个功能的时候,你直接手撸的代码不会比C++已经实现的功能更好。 重点在第二句,可以这样…
PBRT不是一本用来入门的书,也不是一本用来从头看到尾的书,而是一本参考书。 PBRT的优点在于对于很多概念,有详细的解释和描述,仅仅适合作为参考书。在你遇到有什么地方不太明白时,翻下PBRT来找下解释是可以的。直接从头看到尾,一般人是根本看不懂什么意思的。 学习图形学,是需要数学基础的,但是一般学完高数线代就足够了。至于信号处理这些,其实一般是不太用的到的。实践中遇到不会的地方,再进行相关的学习了解就行了。…
在育碧干这么些年,我也来顺便说一下。先说说几个案例吧 1 id soft是业界知名的游戏先驱,在前几代游戏开发上几乎全部都是纯C(doom系列等等),卡尔马克是3D图形界响当当的明星。最近几代也开始转C++。他的回答是,C++是很容易写出丑陋的代码,但是C++用的好的话能写出更漂亮的代码[0],简单说就是C++上限更高。 2 开源软件的基石GCC编译器从3.2左右开始尝试转C++。转之前的状态已经是用尽各种技巧,代码非常复杂,普通开发人员…