# 引擎从哪里开始?

从图形渲染部分开始是最直观的,它也最能引起大家兴致的部分,毕竟程序员有一条路就是TA方向。所以我们从开始就着手图形渲染引擎。 为了实现跨平台也为了省心,我们引入glfw库。

# 什么是GLFW

一个轻量级,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。

  1. 跨平台,能在window、Linux和wayland中使用;
  2. 支持OpenGL、OpenGL ES;
  3. 底层的可配置性;

# glfw的安装与配置

下载 GLFW - Download

include , lib

创建目录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_游戏引擎养成《二》 引入跨平台渲染库相关推荐

  1. opengl游戏引擎源码_跨平台渲染引擎之路:拨云见日

    前言 最近在工作中越来越多地接触到一些3D以及相比常见特性更酷炫的效果,因此萌发了想要自己从0开始打造一个渲染引擎的念头,一方面是为了更好地实现公司业务的需求,另一方面则是可以学到整个渲染流水线上的方 ...

  2. 国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息?

    国内做 3D 渲染和游戏引擎的码农们都在哪里获取技术信息? 国内的做 3D 渲染,图形有关的码农们,主要都是去哪里获取技术帮助呢?尤其是移动这边. 现在公司里主要任务就是在 iOS 上用 GLES 做 ...

  3. HTML5游戏引擎(二)02-egret引擎之hello world——快速上手-清理项目 程序入口 绘制单色背景 调整屏幕的适配模式 添加文字 响应用户操作-让文字变色

    HTML5游戏引擎(二)02-egret引擎之hello world--快速上手-清理项目 & 程序入口 & 绘制单色背景 & 调整屏幕的适配模式 & 添加文字 &am ...

  4. 【转】探索基础元素---基于WebGL的H5 3D游戏引擎BabylonJS

    原文地址:https://blog.csdn.net/AceWay/article/details/51472823 介绍 在本教程, 我们将学习如何使用Babylon.js创建基础元素, 比如盒子, ...

  5. 专属自己的二维游戏引擎【二】

    我给客户制作美术素材从来没有崩溃过,最近给一个客户制作二维游戏素材的时候就直接崩溃了. 次时代模型的流程虽然麻烦,但是我还没有见过比它更麻烦千倍的东西,这次算是见识了. 韩国的泡菜确实比较不太好吃.你 ...

  6. cocos2d-x游戏引擎核心(3.x)----启动渲染流程

    (1) 首先,这里以win32平台下为例子.win32下游戏的启动都是从win32目录下main文件开始的,即是游戏的入口函数,如下: #include "main.h" #inc ...

  7. Unity3D游戏制作(二)——如何渲染3D角色

    本系列文章由 Amazonzx 编写,欢迎转载,转载请注明出处. http://blog.csdn.net/amazonzx/article/details/7935341 本文主要介绍一下如何利用S ...

  8. 3D 渲染和游戏引擎技术信息来源

    出处:https://www.zhihu.com/question/33996938/answer/57720820# Milo Yip C++.计算机图形学.游戏开发 等 7 个话题的优秀回答者 书 ...

  9. python游戏引擎开发二_python制作galgame引擎(二)

    上一篇主要涉及的其实是我个人的一些初期目标,以及解决方式.虽然提了提Parser类的实现,但是代码毕竟不是主要讨论的对象.而且很明显的,上一篇几乎与galgame制作无关-- 这一篇主要讨论的实现,中 ...

最新文章

  1. linux c printf 打印输出null
  2. 在Linux上取得Windows上的文件
  3. python安装包为什么这么小-为什么你的Python包老是装不上?收下这个网站就对了...
  4. 【计算机网络】数据链路层 : 广域网 ( 广域网概念 | PPP 协议 | PPP 协议功能 | PPP 协议组成 | PPP 协议帧格式 )
  5. 37.递推:Pell数列
  6. 使用Spring进行不同开发所需要用到的包
  7. 稳扎稳打Silverlight(8) - 2.0图形之基类System.Windows.Shapes.Shape
  8. gps有几个轨道面_嫦五“一脚刹车”,进了环月轨道
  9. 北邮dsp matlab实验,北京邮电大学《数字信号处理》门爱东-DSP实验.pdf
  10. TCP/IP笔记-Qt使用Win10pcap发送以太帧(理论与实践)
  11. 一条SQL查询语句是如何执行的? MySql杂谈
  12. Linux查看登录日志
  13. Android 启动问题——黑屏 死机 解决方法
  14. MTK.SP Flash Tool v6.2208 联发科V6版本 线刷工具教程下载
  15. biopython教程与手册_使用biopython处理序列数据
  16. centos7搭建apache服务器
  17. selenium操作360极速浏览器的方法
  18. 【Matlab车牌识别】BP神经网络车牌识别【含GUI源码 669期】
  19. 七夕节其实是最古老的异地恋
  20. ChromeDriver与Chrome版本对应关系及下载链接

热门文章

  1. centos7中安装RocketMQ4.7版本
  2. HashSet集合存储数据的结构(哈希表)及set集合存储元素不重复的原理
  3. 第一行代码学习笔记第三章——UI开发的点点滴滴
  4. 利用指针的指针,修改被调函数的局部值【传引用】
  5. 自己实现strcpy
  6. CAN 总线 之六 BOSCH CAN 比特位填充(编码规则)、归零编码(RZ)和不归零编码(NRZ)
  7. makefile文件中的依赖关系理解
  8. 渭南java_渭南java语言入门教程视频
  9. linux进程网络均衡,linux多CPU进程负载均衡解析
  10. linux磁盘同步函数,Linux系统调用fsync函数详解