zoukankan      html  css  js  c++  java
  • Flash Stage3D Molehill 学习笔记(1)

      Adobe的 Stage3D技术已经出来很长时间了。一直忙于工作零零散散的学习了一些,最近在工作中也遇到了不少Stage3D的技术问。所以决定从今天起系统化的学习Stage3D.

    在学习Stage3D技术前首先需要了解下“常见的3D显像术语”与“常见的3D编码术语”。

    常见的3D显像术语:

    网格(Mesh)

      3D世界中的模型被称做网格。这些网格使用 3DMAX、Maya 或者其他3D建模软件制作出来的,它们定义了一个物体的3D形状,以及用于绘制它所需的颜色。3D游戏中的主角就是这样由一个或者多个独立网格所组成的网格模型,而一个完整的游戏场景就是由数百个网格模型所构成的。

    多边形(Polygon)

      网格的每一个面都是一个平面几何图形,而一个网格模型就是由成千上万个多边形所组成的。一个多边形可能是一个简单的三角形,也可能是一个正方形或者矩形。通常所说的模型面数就是组成模型的,多边形的个数。通常多边形的个数越多人物越真,就是表面看上去越圆。

    顶点(Vertex)

      每个多边形都是由3个或者更多的 “顶角” 位置来定义的。比如:一个正方形有4个角,每个角被称做顶点。这些顶点被定义在3D世界中的一个位置。一个有着6个面的正方体有8个顶角,每个顶角叫做一个顶点。一个网格模型是由多个多边形组成的,每个多边形是由3个或者更多的顶点坐标所定义的。

    纹理(Texture)

      绘制一个网格模型需要使用一张或者更多张图片,这些用来给形状上色的图片就被称做纹理。纹理可以被想象成墙纸:把纹理贴在网格上,包裹住网格模型,然后拉伸图像以适应网格的形状。

    着色器(shader)

      着色器是特定的视觉效果的定义者,它们定义了“如何绘制”。在Stage3D 中着色器被存储在 Program3D类中。为了创建一个着色器首先要创建片段着色器(Fragment Program)和顶点着色器 (Vertex Program).将它们两者混合的结果,就是一个完整的着色器了。

    顶点着色器(Vertex Program)

      在Stage3D进行渲染的时候,顶点着色器都会针对网格模型的每一个顶点运行一次。你需要将与顶点相关的任何数据,以及任何你想要指定的其他变量(如摄像机的角度)存放在一个顶点数组里,然后将这个数组提供给顶点着色器以供其进行计算。当计算完成后,顶点着色器会在渲染前汇报这个顶点的最终位置,并附带其他的一些信息比如顶点的颜色。

      顶点着色器将会告诉你的片段着色器,这个网格模型每个顶点的当前状态。

      顶点着色器决定了每个顶点在什么地方,它是什么颜色的,它的纹理坐标是多少,以及其他任何你想要在交给片段着色器进行渲染前计算的数据。

    片段着色器(Fragment Program)

      片段着色器是指一系列用于定义如何处理网格模型可视化渲染的指令,有时候也被称作像素着色器(Pixel Shader).它详细的描述了给定的表面或纹理如何受到光照的影响。不同的材质受光照的影响也不同(这个取决我们是怎么反射和透视的),而我们也就需要不同的代码来模拟这一切。

      片段着色器经常使用纹理和复杂的函数去决定屏幕上的每个像素应该是什么颜色的。有时候片段着色器也会混合一种以上的纹理效果,还有些存储在每个顶点坐标里的RGBA数据,并加上一些参数以得出最终的颜色。

    常见的3D编码术语:

    向量(Vector)

      3D向量是一个包含x,y,z值得结构,它用来描述3D空间中的位置。

      向量的每个值都是一个数字,并且每个数字都表示到(0,0,0),也就是原点的距离。在2D中常说的(0,0)点。于2D不同的是,在2D中(0,0)点变Stage的左上角。而3D中则代表着世界的中间。而用于描述一个向量的x,y,z各部分分量的术语叫轴(Axis).

     法线(Normal)

      法线是一种常用描述方向的特殊向量,它们被称为法线。一般使用Vector3D类来存储它的数据。坐标向量与方向向量的区别只有一点,那就是法线的长度永远是1。

      由于长度是1,法线也常被称为“单位”向量。“法线”的字面意思是正交(比如平面的法线,或者垂直的远离特定表面的指向)例如:描述垂直向上的法线应该是(0,1,0)(假定Y坐标在地球上,那么这个向量就描述了一个与“地面”正交的方向)。

     矩阵(Matrix)

      3D矩阵就是一个向量的集合,矩阵里的各个向量描述了物体的位置,旋转以及缩放。你经常会在移动的同时旋转一个物体,也许还会增加尺寸。Matrix3D类使用一个4X4的方阵:一个4行4列的表格,记录着用于变形的数据。

  • 相关阅读:
    [机器学习]Fine Tune
    行人重识别综述
    OverFeat:基于卷积网络的集成识别、定位与检测
    HOG行人目标检测
    You Only Look Once Unified, Real-Time Object Detection(你只需要看一次统一的,实时的目标检测)
    目标检测:AlexNet
    目标检测Object Detection概述(Tensorflow&Pytorch实现)
    c++ 函数的默认参数
    C++空类
    C++中三种创建对象的方法【转】
  • 原文地址:https://www.cnblogs.com/ch06src/p/3131826.html
Copyright © 2011-2022 走看看