Opengl红皮书有选择的看了一些,最后的讲着色语言GLSL的部分看的甚为不理解,然后找到Opengl橙皮书,然后就容易理解多了. 在前面,我们或多或少接触到Opengl的处理过程,只说前面一些处理,简单来说:顶点操作-组装图形-栅栏化-片断处理-帧缓冲.其中顶点操作相当于我们在程序里设定顶点,法向量等,组装图形就是opengl以我们设定的格式连接顶点,如组装成三角形,四边形等.栅栏化就是把上部操作的图元分解成更小的单元,如一个三角形里有100个像素,在这个过程会转换成100个片断,这个片断包含…
OpenGL着色语言(GLSL――OpenGL Shading Language)是用来在OpenGL中着色编程的语言, 也即开发人员写的短小的自定义程序,他们是在图形卡的GPU (Graphic Processor Unit图形处理单元) 上执行的,代替了固定的渲染管线的一部分.比如:视图转换.投影转换等.GLSL(GL Shading Language) 的着色器代码分成2个部分:Vertex Shader(顶点着色器)和Fragment(片断着色器) ,有时还会有Geometry Shad…
上一篇中介绍了如何使用shader,用来一个最简单的shader,计算顶点的位置,调用了 OpenGL 顶点着色语言中的内置变量对顶点进行操作,这一例程中,将展示如何将应用层 的数据传递到shader中,在shader中完成相应的计算. 先说下在这一节中,我们要完成的任务,不调用OpenGL的旋转函数(即glRotate××) 系列函数,不使用矩阵完成对模型的旋转.要完成这样的功能,那么我们就只能借住shader 来进行计算,编写shader更多的情况要求我们对数学知识了解到更多,掌握的更多,写…
上一个例程中,使用了uniform 类型的变量,uniform可以理解为全局变量,这一节中使用 的是attribute类型的变量,翻译过来就是属性,他是与顶点绑定的,就意味着一个顶点可以 有很多个属性(当然也可以没有),提出这个概念的原因是啥呢?我们先看下最早期的OpenGL 早己的OpenGL定义的数据比较少,有顶点,法线,颜色,纹理(1.0版本),也就是说一个 顶点可以传递给显卡的数据是有限的,没有办法在像显卡传递更多的数据参与计算,例如,现在 游戏中比较流线的法线贴图(或者叫凹凸纹理)是做…
Scheme <How to Design Programs : An Introduction to Programming and Computing>(<程序设计方法>) <Structure and Interpretation of Computer Programs> <The Little Schemer> <The Seasoned Schemer> <The Scheme Programming Language>…
之前介绍了vertex shader的基本原理,现在我们来做一个简单的实践,在游戏中广告版(布告版) 随处可见,而且效率很高,现在我们就使用shader来实现这一过程,首先我们要知道布告版的原理 实际上就是一直对着摄像机,与摄像机的方向上是垂直的.如下图所示: 不管摄像机如何去动,那么广告版也跟随一起动(即旋转),那么在摄像机动的时候,就要重新计算 布告版的位置,为了做到这一点,我么要对摄像机的原理有所了解,看摄像机的几个重要的参数, 观看的方向:dir 向上的方向:up 向右的方向:right…
1. 环境配置 在这里不在做环境配置的说明,因为网上可以找到很多类似的教程,如果有需要可以@我,我也希望能帮到大家,其它的不说了,先上我的代码 2. 第一个程序代码 创建LoadShader.h #pragma once #include <GL/glew.h> #include <GLFW/glfw3.h> #include <string> GLuint LoadShader(const char *vertice_path, const char *framgme…
搭建python 先学习下当小白鼠 1 看下自己的python版本 python -v 2 然后,用pip安装开发Web App需要的第三方库: 异步框架aiohttp: pip3 install aiohttp 如果提示pip版本过低,请根据提示升级 3前端模板引擎jinja2: pip3 install jinja2 4 安装mysql的python扩展 pip3 install aiomysql 5  新建app.py import logging; logging.basicConfig…
<C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码.其中的很多代码根本不可能通过编译.仅此足矣说明该书不仅是一本劣书,而是一本挂羊头卖狗肉的伪书. 通篇的void main().C语言从来没说过可以这样写main(). 很多地方完全是一个外行荒唐的臆想和信口开河,如: “scanf("%d,%d\n",&a,&b); 该格式…
一.环境准备: 系统环境win7,64位,双显卡:集成显卡+gt540m,gt540建议下载最新的驱动,可以支持到opengl4.3标准,一般双显的笔记本,程序默认启用的是集显,我机器的集显驱动有点老,只能支持到opengl3.0,所以讲默认显卡设置为独显. 开发环境:vs2010 PS:查看机器及显卡支持的OpenGL版本可以使用工具GPU_Caps_Viewer_v1.18.1或者更高版本 二.OpenGL拓展包下载: 2.1 GLEW:windows开发环境,默认只支持opengl1.1的…