三维图形程序设计

这篇博客介绍了计算机图形学的基础,包括图形流水线、OpenGL编程和光照模型。讲解了从几何变换、投影到光栅化的过程,以及OpenGL的功能和编程模式。详细探讨了Phong和Blinn-Phong光照模型在OpenGL中的应用。

基础知识

计算机图形学概述

计算机图形学(CG)是一门研究如何利用计算机进行图形的计算、处理和显示的学科。简单的说是一种使用数学算法将二维或三维图形转化为计算机显示器所能显示的二维栅格形式的科学(3D–>2D)。

  • 建模(Modeling):构建物体三维模型
  • 渲染(Rendering):计算屏幕窗口中每个像素的颜色,像素点颜色与光照、环境及物体材质有关
  • 动画(Animation):让物体动起来

图形与图像

  • 图形(graph):表示形的几何信息
  • 图像(image):像素组成的二维栅格
    图形的显示最终要转化为图像。
    在这里插入图片描述

图形流水线

  • 图形流水线(Graphics pipeline):在计算机中将3D模型转化为屏幕上的图像经过的一系列处理步骤(现在一般是逐面片绘制)。
    • 逐面片绘制:模型由许多面片(polygon)组成,逐面片的进行投影、光栅化(Rasterization)。
      • 投影:三维变换到二维
      • 光栅化:计算面片所覆盖的栅格
  • 1992年,SGI发布OpenGL1.0,图形流水线逐渐形成业界标准。
  • 1994年出现PC显卡,1999年出现GPU,图形流水线逐渐硬化到pc机专用图形硬件中。
    OPENGL红宝书上的流水线
    图形流水线总览
  1. 顶点操作(vertex operation)
    变换(Transformation):几何变换->投影->裁剪->视口变换
  2. 光栅化(rasterization)
    计算面片所覆盖的栅格
  3. 片元操作(fragment operation)
    纹理、雾效、测试等

图形开发库

  • 基础图形库
    • OpenGL(Open graphics library)
      调用图形硬件的程序接口,应用程序和图形显卡驱动的中介,可跨平台。
    • Direct3D
      在游戏界占优。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值