webgl 基础渲染demo_游戏引擎养成《二》 引入跨平台渲染库
# 引擎从哪里开始?
从图形渲染部分开始是最直观的,它也最能引起大家兴致的部分,毕竟程序员有一条路就是TA方向。所以我们从开始就着手图形渲染引擎。 为了实现跨平台也为了省心,我们引入glfw库。
# 什么是GLFW
一个轻量级,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。
- 跨平台,能在window、Linux和wayland中使用;
- 支持OpenGL、OpenGL ES;
- 底层的可配置性;
# glfw的安装与配置
下载 GLFW - Download
创建目录Dependencies ,将GLFW的头文件和lib2015 移到此处。
修改我们的CMakeLists.txt + main.cpp 来测试是否成功。
main.cpp
#include
CMakeLists.txt -根目录
这里我们用到了cmake的更多特性,add_subdirectory创建子路径,在子路径中的CMakeLists.txt在执行时也会被调用,非常便捷。
cmake_minimum_required (VERSION 3.1)
set (CMAKE_C_STANDARD 11)
set (CMAKE_CXX_STANDARD 11)
project (PhantomEngine)
include_directories("${PROJECT_SOURCE_DIR}/PhantomCore")add_subdirectory(PhantomCore)
CMakeLists.txt - core 目录
include_directories("${PROJECT_SOURCE_DIR}/Dependencies/GLFW/include")
link_directories("${PROJECT_SOURCE_DIR}/Dependencies/GLFW/lib-vc2015")
link_libraries("glfw3.lib")
add_executable(PhantomCore main.cpp)
target_link_libraries(PhantomCore glfw3.lib)
# 一切准备妥当后,cd进build目录执行cmake .. ,得到vs工程,打开运行成功。
ok , 使用我们的git 提交并打好tag,第二节工程环境算是搭建ok了。
前两节轻松愉快,但是要预习好cmake 、git 以及 脱离IDE自己编译程序所需的知识。希望我们能由浅入深,循序渐进,在程序构建、版本管理、图形渲染、引擎架构等方面来一次深潜。
下一节:游戏引擎养成《三》 hello window!
webgl 基础渲染demo_游戏引擎养成《二》 引入跨平台渲染库相关推荐
- opengl游戏引擎源码_跨平台渲染引擎之路:拨云见日
前言 最近在工作中越来越多地接触到一些3D以及相比常见特性更酷炫的效果,因此萌发了想要自己从0开始打造一个渲染引擎的念头,一方面是为了更好地实现公司业务的需求,另一方面则是可以学到整个渲染流水线上的方 ...
- 国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息?
国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息? 国内的做 3D 渲染,图形有关的码农们,主要都是去哪里获取技术帮助呢?尤其是移动这边. 现在公司里主要任务就是在 iOS 上用 GLES 做 ...
- HTML5游戏引擎(二)02-egret引擎之hello world——快速上手-清理项目 程序入口 绘制单色背景 调整屏幕的适配模式 添加文字 响应用户操作-让文字变色
HTML5游戏引擎(二)02-egret引擎之hello world--快速上手-清理项目 & 程序入口 & 绘制单色背景 & 调整屏幕的适配模式 & 添加文字 &am ...
- 【转】探索基础元素---基于WebGL的H5 3D游戏引擎BabylonJS
原文地址:https://blog.csdn.net/AceWay/article/details/51472823 介绍 在本教程, 我们将学习如何使用Babylon.js创建基础元素, 比如盒子, ...
- 专属自己的二维游戏引擎【二】
我给客户制作美术素材从来没有崩溃过,最近给一个客户制作二维游戏素材的时候就直接崩溃了. 次时代模型的流程虽然麻烦,但是我还没有见过比它更麻烦千倍的东西,这次算是见识了. 韩国的泡菜确实比较不太好吃.你 ...
- cocos2d-x游戏引擎核心(3.x)----启动渲染流程
(1) 首先,这里以win32平台下为例子.win32下游戏的启动都是从win32目录下main文件开始的,即是游戏的入口函数,如下: #include "main.h" #inc ...
- Unity3D游戏制作(二)——如何渲染3D角色
本系列文章由 Amazonzx 编写,欢迎转载,转载请注明出处. http://blog.csdn.net/amazonzx/article/details/7935341 本文主要介绍一下如何利用S ...
- 3D 渲染和游戏引擎技术信息来源
出处:https://www.zhihu.com/question/33996938/answer/57720820# Milo Yip C++.计算机图形学.游戏开发 等 7 个话题的优秀回答者 书 ...
- python游戏引擎开发二_python制作galgame引擎(二)
上一篇主要涉及的其实是我个人的一些初期目标,以及解决方式.虽然提了提Parser类的实现,但是代码毕竟不是主要讨论的对象.而且很明显的,上一篇几乎与galgame制作无关-- 这一篇主要讨论的实现,中 ...
最新文章
- linux c printf 打印输出null
- 在Linux上取得Windows上的文件
- python安装包为什么这么小-为什么你的Python包老是装不上?收下这个网站就对了...
- 【计算机网络】数据链路层 : 广域网 ( 广域网概念 | PPP 协议 | PPP 协议功能 | PPP 协议组成 | PPP 协议帧格式 )
- 37.递推:Pell数列
- 使用Spring进行不同开发所需要用到的包
- 稳扎稳打Silverlight(8) - 2.0图形之基类System.Windows.Shapes.Shape
- gps有几个轨道面_嫦五“一脚刹车”,进了环月轨道
- 北邮dsp matlab实验,北京邮电大学《数字信号处理》门爱东-DSP实验.pdf
- TCP/IP笔记-Qt使用Win10pcap发送以太帧(理论与实践)
- 一条SQL查询语句是如何执行的? MySql杂谈
- Linux查看登录日志
- Android 启动问题——黑屏 死机 解决方法
- MTK.SP Flash Tool v6.2208 联发科V6版本 线刷工具教程下载
- biopython教程与手册_使用biopython处理序列数据
- centos7搭建apache服务器
- selenium操作360极速浏览器的方法
- 【Matlab车牌识别】BP神经网络车牌识别【含GUI源码 669期】
- 七夕节其实是最古老的异地恋
- ChromeDriver与Chrome版本对应关系及下载链接
热门文章
- centos7中安装RocketMQ4.7版本
- HashSet集合存储数据的结构(哈希表)及set集合存储元素不重复的原理
- 第一行代码学习笔记第三章——UI开发的点点滴滴
- 利用指针的指针,修改被调函数的局部值【传引用】
- 自己实现strcpy
- CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)、归零编码(RZ)和不归零编码(NRZ)
- makefile文件中的依赖关系理解
- 渭南java_渭南java语言入门教程视频
- linux进程网络均衡,linux多CPU进程负载均衡解析
- linux磁盘同步函数,Linux系统调用fsync函数详解