WEB开发网
开发学院WEB开发Jsp 介绍JSR184(3D)中的光线概念 阅读

介绍JSR184(3D)中的光线概念

 2008-01-05 08:53:03 来源:WEB开发网   
核心提示: 把光线加进3D场景中可以给3D最终的外观带来一个巨大的变化,但是这里有很多东西需要思考,介绍JSR184(3D)中的光线概念,同时结果也不会总是和预期的一样,这篇文章描述怎样把光线加入一个由JSR184开发的3D的场景中,(垂直线)在JSR184中我们为被用于物体外型上的每一个点输入一条法线,下面的代码告诉我们它能

    把光线加进3D场景中可以给3D最终的外观带来一个巨大的变化。但是这里有很多东西需要思考,同时结果也不会总是和预期的一样。这篇文章描述怎样把光线加入一个由JSR184开发的3D的场景中,和怎样设置一个物体的材质(material)。


介绍JSR184(3D)中的光线概念(图一) 介绍JSR184(3D)中的光线概念(图二) 

 

在我们开始之前,需要知道一个很重要的事情:添加光线到一个3D场景中对于性能来说是一个代价很高的操作,必须时刻记住。

在JSR184中有4个不同的光线选项。

 

Ambient(四周):在一个无限的时间点上,光线以分散的形式在环境表面上照射,使光源不可能决定。这种光线的位置和方向不会影响最终的结果。(其实就是物体表面发光,太阳散射)

Directional(方向):举个真实世界的例子就是太阳光照到物体表面,光线被平均的分散到各个方向。这种光线的位置不会影响最终结果。   

Omnidirectional(全方向):这种光线能被认为是一点光,光线被光源平均分配到各个方向,你能通过改变光源的位置来改变最终的结果,但是改变方向不能影响结果。

Spot(斑点):这种光线在已选择的方向上射出一道锥形的光线,这道锥形光线的宽和强度能改变,而且它的位置和方向能影响3D场景。

 

一条法线的意思是:相对于平面90度角的矢量。(垂直线)
介绍JSR184(3D)中的光线概念(图三)

在JSR184中我们为被用于物体外型上的每一个点输入一条法线,下面的代码告诉我们它能实现一个棱锥,必须要记住输入法线的取值范围在-127~127的角度之间。

// 棱锥的最高点. x, y, z
short []POINTS = new short[] {

-1, -1, 1, 1, -1, 1,  0, 1, 0,   // 前
  1, -1, 1,   1, -1, -1,  0, 1, 0,   // 右
  1, -1, -1,  -1, -1, -1,  0, 1, 0,   // 后
  -1, -1, -1,  -1, -1, 1,  0, 1, 0,   // 左
  -1, -1, 1,   1, -1, 1,  1, -1, -1,  // 下右
  -1, -1, 1,   1, -1, -1, -1, -1, -1}; // 下左


Tags:介绍 JSR 光线

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接