首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
游戏引擎
sumsmile
创建于2022-10-20
订阅专栏
游戏引擎的学习
等 61 人订阅
共40篇文章
创建于2022-10-20
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
游戏引擎从零开始(39)-批渲染应用于粒子场景
批渲染应用到粒子场景 批渲染非常适用于粒子场景,数量大且特征相同。 这章我们在之前的场景上,加上粒子效果,使用合批的方式来渲染,看看性能如何。 最终的实现效果如下,滑动鼠标时,有拖尾的粒子效果,每个粒
游戏引擎从零开始(38)-Batch Rendering(4)
分批处理的应用 批处理是不是真的有性能优化呢? 这章我们绘制更多的图元,对比批渲染和多次渲染的效果。 最后实现如下图所示的效果,在上一章的基础上更加了很多小矩形,并增加了统计数据的显示。 增加分批 &
游戏引擎从零开始(37)-Batch Rendering(3)
批渲染中的旋转处理 这章我们继续完善批渲染,支持旋转处理。 回顾下通用的顶点着色器的代码: 一个顶点的坐标计算依赖"投影矩阵(u_ViewProjection)"、"移动变换(u_Transform)
游戏引擎从零开始(36)-Batch Rendering(2)
上一篇实现了"简陋"的批渲染,Demo中的矩形都使用同一种纹理,这篇继续完善,每个矩形可以有自己的纹理,下图是我们最终要实现的效果。 一、批渲染纹理 1.1回顾下批处理和纹理的使用 开始之前,如果你不
游戏引擎从零开始(35)-Batch Rendering(1)
一、前言 什么是Batch Rendering 打个比方,一个人骑一辆摩托车上路,10个人就需要骑10辆摩托车,这是普通的渲染方式,每个人上路都要消耗一次摩托车资源(GPU资源) 如果10个人都挤上1
游戏引擎从零开始(34)-1小时开发2D游戏
这章我们不用任何第三方库,从零实现一个类似Flappy Bird的简单游戏,提供完整的代码和素材。从整体思路到细节都会有讲解,很适合游戏或游戏引擎新手学习。 游戏场景简单,但是很完整,有开始结束、得分
游戏引擎从零开始(33)-2D渲染器支持旋转
前言 这篇做一些小优化,完善Renderer2D的API。 调整Run()方法的访问属性 纹理通过参数来控制缩放 支持创建旋转的矩形 代码优化 Run()方法设成private属性 当前的代码Run(
游戏引擎从零开始(32)-性能数据可视化
计划用半年的时间,搭建一个简易的游戏引擎,加深对游戏引擎和图形学的理解,查漏补缺。 上一篇实现了实时的看性能的效果,但是只能看单帧的数据,实际工程中我们需要观察一整段的性能。
游戏引擎从零开始(31)-性能分析工具
前言 性能耗时分析是工程中非常重要的一块,所有的技术深入到后面都是在扣性能。 这节我们先暂停引擎核心功能的开发,做一个简单的耗时统计。用到了c++11的chrono库。 耗时统计(Profile) 删
游戏引擎从零开始(30)-2D Renderer transform&纹理
上一篇中,有个类名笔误写错了,更正为: Renderer2D-->Sandbox2D,代码参考: https://github.com/summer-go/Hazel/commit/a8d1b7041
游戏引擎从零开始(29)-2D Renderer 准备工作
前言 到目前,我们的引擎已经完成了最基本的渲染API、纹理、输入控制等逻辑。 今天我们基于这个引擎,在Application层增加一个2D渲染Demo的示例,将引擎的使用流程走一遍。实现一个可设置颜色
游戏引擎从零开始(28)-windowResize
本章节,我们实现window的resize的效果,更改窗口大小时,设置viewport。 windowResize 事件传递的路径: Application::OnWindowResize Rende
游戏引擎从零开始(27)-Camera Crontroller
前言 本章节,我们再继续做一点封装,将OrthographicCamera中的部分控制逻辑抽出来,放到OrthograrphicCameraController中,这使得Camera更聚焦、轻量。 代
游戏引擎从零开始(26)-shader缓存
前言 这次要做的工作是,将shader缓存起来,我们设计一个ShaderLibrary缓存Shader,方便在整个引擎范围内对shader进行管理,底层我们用unorder_map<string, i
游戏引擎从零开始(25)-glsl封装成文件
前言 现在的glsl语句是以字符串的形式写在代码中,既显的臃肿、也不方便复用。 这章做一个简单的glsl解析,将glsl语句挪到文件中。 glsl封装与解析 glsl语句存到文件中,分三步处理: 读取
游戏引擎从零开始(24)-混合(Blend)
前言 这章我们再做一点优化,支持加载带透明度的纹理。 我们要把下面这张带透明度的图片渲染到界面上。 下载地址: https://github.com/summer-go/Hazel/blob/7af3
游戏引擎从零开始(23)-纹理封装
前言 精美的游戏画面离不开纹理的使用,这章我们实现游戏引擎中非常基础的功能-纹理加载(Texture)。 正式开始之前,我们调整一下之前的代码,将std::unique、std::shared改成自定
游戏引擎从零开始(22)-Shader抽象
前言 这章做一点小小的代码改进,将Shader类抽象成接口,实现类OpenGLShader放到Platform/OpenGL下,以保证Renderer层是跨平台的。 Shader抽象与实现 Shade
游戏引擎从零开始(21)-移动物体
移动物体 物体在空间中的坐标变换简称mvp(model、view、projection),前面两章讲了vp,这章补上model变换。 目标是通过移动矩形坐标,复制出一个蓝色的棋盘图案,如下图所示: 拓
游戏引擎从零开始(20)-移动相机
前言 现在的场景是写死的,相机不能移动,本章节增加键盘响应,对相机增加移动、旋转操作。 代码整理 开始前,我们先整理下代码,将Application中相机的操作、绘制元素、Shader的操作挪到San
下一页