登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 334|回复: 0

华人小哥开辟“CG工坊”,帮你快速入门盘算机图形学|GitHub热榜 ...

[复制链接]

946

主题

946

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2020-12-24 03:50:05 | 显示全部楼层 |阅读模式 来自 中国

原标题:华人小哥开辟“CG工坊”,帮你快速入门盘算机图形学 | GitHub热榜

子豪 发自 凹非寺

量子位 报道 | 公众号 QbitAI

CG新手们,你们的福音来了~

yO94IAnqYuQliYU9.jpg

为了让初学者更好地学习盘算机图形学底子知识,一位哈佛小哥创建了 graphics-workshop,一周左右的时间,已经在GitHub上得到 1K星。

yo4COYq6Hc666PY5.jpg

此中包罗5个子项目:被子块图案、过程纹理天生、栅格化和着色、风格化渲染,以及光线追踪。

用户必要用 npm举行安装,通过运行下面的代码,安装依靠项和启动开辟服务器。

3packages arelooking forfunding run `npm fund`fordetails

found0vulnerabilities

睁开全文

$ npm run dev

vite v2 .1.5dev serverrunning at:

> Local: http://localhost: 3000/ > Network: http:// 10.250.14.217: 3000/

ready in555ms.

详细怎么用?一起来看。

被子块图案

起首,可以将制作被子块图案作为 入门项目,它展示了在 2D网格中渲染的过程。

s3NVROC8mr8qxznO.jpg

作者在「shaders/quilt.frag.glsl」中给出了相应的代码,片断着色器遍历每一个像素,将像素编号传入gl_FragCoord.xy中,绘制2D网格。

新手们可以通过 取消解释,来改变图形,包罗绘制、翻转外形和改变颜色等。

好比,修改if语句,就可以改变图案的多少外形;

假如想天生更丰富的RGB颜色,可以通过修改变量c实现:

C2Ii282uPwc2J82J.jpg

末了,使用gl_FragColor输出像素的颜色。

过程纹理天生

除了制作被子块图案,还可以创建雷同「我的天下」中的场景:

I8rZ554YYiUurFrC.jpg

为天生天然的表面,开辟者利用了一种常见的图形基元,称为单纯形噪声。函数float snoise(vec2)用来吸收向量,并在该位置输出一个平滑的标量噪声值。

由于差别位置的噪声值大抵独立,改变屏幕右上方的seed ,就可以或许看到渲染后输出的新外形。

依次取消第一个代码块的解释,学习组合差别音高的噪声,用于改变纹理;取消第二个代码块的解释,学习利用阈值(特殊是mix和smoothstep函数)来调解颜色。

别的,还可以添加参数,好比:使用temperature,从噪声图中独立采样来改变阴影等。

栅格化和着色

与大多数视频游戏所用的算法雷同,接纳栅格化方法渲染 3D三角形网格,出现更传神的结果:

SOaF2afb9FafI2K7.jpg

将3D外貌分解为三角形,然后在屏幕上独立绘制每个三角形,并在它们之间插入变量。

图像被储存为三角形网格,片断着色器将对三角形的每个片断评估一次,而不是针对每个像素。

用户可以单击拖动来检察图形的差别角度,通过mesh检察除茶壶之外的其他外形,以及用kd改变对象的颜色。

使用illuminate函数,可以表现光源的位置,以及光源对当前像素颜色的作用。

代码现在仅支持漫反射,用户也可以更新代码,添加Phong 镜面反射组件。

风格化渲染

这一项目标代码和上面的项目非常相似。

但是在举行照明盘算之后,不会立即输出颜色,而是 根据亮度强度阈值,举行离散化和差别风格的处置惩罚。

l79Q0VD9yQw6yy9j.jpg

光线追踪

光线追踪是照片级真实感渲染中的黄金尺度。

通过为每个像素拍摄射线,来用片断着色器举行多少盘算,用trace函数返回与给定射线相对应的颜色,来举行建模。

kFJJrGcR84jghMfX.jpg

用intersect 函数来盘算空间中任何射线的第一个交点;illuminate用于将两个点光源的作用相加,来盘算给定点的光照。

在举行照明盘算之前,添加条件语句以查抄从点到光源的射线是否被遮挡。假如被遮挡,则应立刻返回vec3(0.0)模仿阴影。

通过修改代码,还可以选择强度,在差别的位置添加第三个点光源。

作者简介

JHzTGkeTX4V9e1Eh.jpg

开辟者 Eric Zhang,现在是哈佛大学的硕士研究生,重要研究方向是呆板学习和编程语言,曾在英伟达练习。

他得到过两届IOI金牌,还为高中门生写了一本 物理书,而且提供免费的电子版。

BYyp11CbpzbYBuVB.jpg

不但云云,小哥还善于音乐,依附中提琴演奏得到过不少奖项。

他常常在个人网站分享文章,也在Github中发布过多个项目,都有着不错的反响。

感爱好的朋侪们,可戳链接相识详情~

参考链接:

[1]http://github.com/ekzhang/graphics-workshop

[2]http://www.ekzhang.com/

[3]http://www.aapt.org/physicsteam/2020/pastexams.cfm

本文系网易消息•网易号特色内容鼓励筹划签约账号【量子位】原创内容,未经账号授权,克制随意转载。

参加AI社群,拓展你的AI行业人脉

量子位「AI社群」招募中!接待AI从业者、关注AI行业的小同伴们扫码参加,与 50000+名挚友共同关注人工智能 行业发展&技能希望

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技能和产物新动态

一键三连「分享」、「点赞」和「在看」

科技前沿希望日日相见~返回搜狐,检察更多

责任编辑:





上一篇:思索:聪明讲堂产物有哪些弊病?
下一篇:微软Win10WSL已支持运行LinuxGUI图形界面软件
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-4-29 13:00 , Processed in 0.210868 second(s), 61 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表