第一章 简介 1.1 什么是Cg Cg是一门编程语言。Cg在图形硬件汇编语言的基础上封装了一层,其与OpenGL和DX的高级光照语言兼容。Cg基于C语言。 1.1.1 为可编程图形硬件设计的语言 Cg的目标是:为使用图形硬件渲染的物体的形状、外观和运动提供可编程控制的能力。当然也可以用来实现物理模拟、混合和其他非光照任务。 1.1.2 Cg的数据流模型 Cg是基于数据流模型的。Cg程序实际上是在GPU上执行的。 1.1.3 图形处理器的特殊性和中央处理器的通用性 CPU是以多种用途为目…
第一章 简介 1.1 什么是Cg Cg是一门编程语言。Cg在图形硬件汇编语言的基础上封装了一层,其与OpenGL和DX的高级光照语言兼容。Cg基于C语言。 1.1.1 为可编程图形硬件设计的语言 Cg的目标是:为使用图形硬件渲染的物体的形状、外观和运动提供可编程控制的能力。当然也可以用来实现物理模拟、混合和其他非光照任务。 1.1.2 Cg的数据流模型 Cg是基于数据流模型的。Cg程序实际上是在GPU上执行的。 1.1.3 图形处理器的特殊性和中央处理器的通用性 CPU是以多种用途为目…
参考链接: GPU渲染管线 如何理解 OpenGL 中着色器、渲染管线、光栅化等概念? 渲染管线浅析 浅谈 GPU图形固定渲染管线 OpenGL的固定功能管线 转自:OpenGL: 渲染管线理论 我的理解就是顶点->图元->光栅->片元->帧缓冲 阶段1. 指定几何对象 如:点 线 三角形.等一些几何图元..OpenGL绘制几何图元的方法有以下三种: <1> 一次一个顶点.即使用glBegin() glVertex() glEnd() 指定几何对象. <2> 使用顶…
GLShaderManager类定义在GLShaderManager.h头文件中 使用GLShaderManager前必须对其进行初始化shaderManager.InitializeStockShaders() GLShaderManager有8种着色器模式 1. 单位着色器 简单使用笛卡尔坐标系,所有坐标范围都是-1.0到1.0。所有片段用同一种颜色。几何图形是实心的、未渲染的。 函数原型:GLShaderManager::UseStockShader(GLT_SHADER_IDENTITY,GLfloat v…
(机翻,转载自:Article - World, View and Projection Transformation Matrices) 介绍 在本文中,我们将尝试详细了解任何3D引擎的核心机制,即矩阵变换链,它允许在2D监视器上表示3D对象。我们将尝试进入矩阵如何构建的细节以及为什么,所以这篇文章不是绝对的初学者。 我将假设向量数学和矩阵数学的一般知识。 我们先来谈谈转换和向量空间之间的关系。然后我们将展示如何以矩阵形式表示变换。从那里,我们将展示您将需要应用的典型的转换顺序,从 模型 到 世界空间,然后…
环境:win10 64位+vs2017+CMake3.10.0 freeglut的配置: 为什么使用freeglut: OpenGL标准里并没有提供辅助操作和界面显示及操作的功能,最先出现的是aux库,aux的目的是让人们在学习OpenGL的工程中不必为各种平台的环境的细枝末节而消耗精力,但aux的效果并没有想象的那么好,然后出现了glut库,glut是对aux的增强和替代,glut在各个平台得到广泛的支持和维护、扩展。但OpenGL发展速度飞快,glut并不是开源的,而且更新进度也跟不上,上一个版本还是1998年…
最近在学习opengl,一直用的是glu、glut库,在看到一些教程后,发现OpenGL的环境配置学问也不小,所以总结一下。 首先是版本问题:OpenGL版本与OpenGL扩展机制 然后是各个库,以32结尾的是微软相关的 gl是核心库。提供核心功能 。实现:opengl.lib、opengl32.lib glu是实用库。是对gl的部分封装,提供了诸如复杂曲线、曲面的绘制。实现:glu.lib、glu32.lib glaux是辅助库。提供了简单的窗口绘制功能,过时。实现:glaux.lib glut是实用工具库。是对…