![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
渲染引擎
文章平均质量分 89
楚游香
这个作者很懒,什么都没留下…
展开
-
JavaScript实现软件光栅化渲染器-如何画直线
在计算机屏幕上画直线碰到的第一个问题是:由于屏幕是一个由整数坐标表示的2D网格,因此要在屏幕上显示类似 (20.5, 30.3) 的点几乎是不可能的,只能采用近似值,例如,把点显示为 (...原创 2020-09-09 07:00:00 · 348 阅读 · 0 评论 -
Bresenham快速画直线算法(中文翻译+注释)
原文:https://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html基本Bresenham算法考虑在光栅网格上绘制一条直线,这条直线的斜率是 0≤m≤10\leq m \leq 10≤m≤1。斜率定义:假设直线起点是(x1, y1),终点是(x2, y2),则斜率=(y2-y1)/(x2-x1)。如果我们进一步限制该绘制程序,使其在绘制时 x 值不断递增,那么很明显,在 (x, y) 处绘制一个点后,直线下一个点的位置范围非常有原创 2020-08-12 18:59:30 · 2374 阅读 · 0 评论 -
JavaScript实现软件光栅化渲染器-前言
项目代码:https://github.com/foupwang/JavaScript3DRenderer开发环境:VSCode+Chrome浏览器参考:《Windows游戏编程大师技巧》(第2版) /《3D游戏编程大师技巧》(André LaMothe)QQ交流群:1148938167(欢迎加入探讨图形渲染技术)软件光栅化渲染器,是指用CPU(软件)实现GPU(硬件)绘图的功能。在现实环境中,因为OpenGL/Direct3D/游戏引擎的存在,我们基本接触不到光栅化过程中的细节,通过自己用纯代码实原创 2020-08-12 19:08:32 · 412 阅读 · 0 评论 -
JavaScript实现软件光栅化渲染器01-如何画点
项目代码:https://github.com/foupwang/JavaScript3DRenderer开发环境:VSCode+Chrome浏览器参考:《Windows游戏编程大师技巧》(第2版) /《3D游戏编程大师技巧》(André LaMothe)QQ交流群:1148938167(欢迎加入探讨图形渲染技术)整个项目跟平台相关的,只需要一个类似DrawPixel的绘制像素功能,其它的全部使用代码实现。因为是基于浏览器运行,所以我们使用网页Canvas的画点功能。1、新建一个DrawPoin原创 2020-09-08 21:25:24 · 337 阅读 · 0 评论 -
3D游戏引擎小结
1 数学知识1.1 坐标系分为左手坐标系和右手坐标系两种,主要区别在于z轴的指向,z轴指向屏幕内的是左手坐标系,z轴指向屏幕外的右手坐标系。Unity和Direct3D使用的是左手坐标系,OpenGL使用的右手坐标系。法线和切线与椭圆有且仅有一个交点的直线,叫做椭圆的切线。二者公共点,叫做切点。经过切点且与切线垂直的直线,叫做该椭圆的法线。1.2 三角学整个圆周为360度(2π2\pi2π弧度),因此180度等于π\piπ弧度,约57.296度等于1弧度。三角函数sin和cos的参数以弧度为原创 2021-11-02 07:00:00 · 1934 阅读 · 2 评论