2019.7.4

本着对游戏创作的热情,本人初步了解了一部分的unity引擎的使用,也学习了一点C#可是越学习unity我就反而对引擎内部感兴趣(不知道有没有一样的朋友=,=)。

接着了解到了opengl 以及他的衍生物们(SDL , GLFW , GLEW等),感觉所有的有关渲染的API或者说是函数库(本人一直很讨厌把专业知识说的太官方。。见谅)都是“扎根”于opengl。

接下来我想简要的谈谈我对opengl 的理解,也就是什么是opengl?

首先本人只是一位普普通通的大二在校学生,可能有很多地方说的不正确,希望到时看到文章的大佬们赐教! 小弟万分感谢!!(当然随着这个系列的更新 我对opengl的理解加深,到最后我应该会对它有新的认识,哈哈留个记录在这,看到最后我究竟会对它怎么理解)

首先对我来说 opengl 是由C语言写成的一套可以让程序员操纵计算机渲染(操纵底层显卡)的方法的集合。我们通过调用其中提供的方法可以 对渲染管线(我更喜欢叫它渲染流水线)进行(部分)编辑从而达到我们想要的效果,同时opengl 还可以直接通过其他应用程序对已经创建完成的渲染管线进行调用(可能这就是显卡驱动程序的工作方式吧),当然另一种方法则是通过程序员自己的输入在告诉opengl该如何绘制图形(初学者应该都是先从这一步开始的)。

在之后我想谈谈我对渲染流水线理解,但在这之前 我想先说说我对一个游戏运行起来后的显卡和CPU具体是怎么工作的做一个简要说明。(当然以下内容全是自己的一些理解和猜想。。希望大佬们不吝赐教)

首先游戏其实都是一帧帧图像构成的,每一秒有大量的图片渲染到大家的显示器上,每张图片又是大量的像素点构成的,屏幕上的像素点改变成什么颜色?渲染多少个像素点?等等这一系列的问题都是通过渲染流水线来决定的。 现在假设 游戏启动,游戏需要的资源先加载到内存中,然后根据玩家对游戏的操纵,cpu计算出顶点(vertex)的位置和颜色(很多为一组),然后将其发送给GPU告诉显卡该做如何的渲染,这样GPU通过其中的渲染管线对顶点链接和着色。(其中会牵扯到许多空间管理的地方,VBO,EBO,VAO等)。。顶点属性,顶点数据,GLSL等等更多的知识,目前暂时介绍到这里(毕竟我才学习到纹理。。而且SOIL没有适配上MACOS,可能之后会有一个讨论帖讨论这个问题。),希望能给刚刚开始学习图形学的朋友们一些帮助,毕竟感觉国内图形学的学习资源很少,而且质量不高。

最新文章

  1. 从零到有——我的OA如何成长
  2. javaURL中文乱码的问题
  3. 创建高性能移动 web 站点
  4. Use XML in Windows Phone 8.0
  5. Table of Contents - Ehcache
  6. ASP.NET常用技术之Cookie
  7. Jetty:配置JSP支持
  8. PAT (Advanced Level) 1059. Prime Factors (25)
  9. 使用dlib中的深度残差网络(ResNet)实现实时人脸识别
  10. 逆天的 GRUB
  11. lsof/netstat命令的一个重要作用: 根据进程查端口, 根据端口查进程
  12. day1.接口测试(概念、Postman、SoapUI、jmeter)
  13. 安卓之必须了解的实时通信(Socket)
  14. 微信公众号开发模型WeChat
  15. 分布式中的 transaction log
  16. Java中创建String的两种方式差异
  17. 2.6 《硬啃设计模式》第8章 复制不是很难 - 原型模式(Prototype Pattern)
  18. JQuery 选择器 xpath 语法应用
  19. CSDN优秀博客连接,博客之星连接。
  20. WPF TextBox PreviewTextInput handle IME (chinese)

热门文章

  1. ubuntu18.04上搭建KVM虚拟机环境超完整过程
  2. cogs.12运输问题2题解
  3. Lucene05-分词器
  4. python面向对象编程小程序- 选课系统
  5. [leetcode] 120. Triangle (Medium)
  6. C#编程.函数.参数
  7. Linux命令大全(简)
  8. @GetMapping、@PostMapping和@RequestMapping的区别
  9. C++多小球非对心弹性碰撞(HGE引擎)
  10. Number() 与 parseInt()解析