发布网友 发布时间:2022-04-21 22:41
共1个回答
热心网友 时间:2023-07-23 07:07
利用三维全影像(24张照片)进行三维建模的方法原理是:根据原始照片,使用编程命令对图片进行编程,再使用Papervision3D软件对经过编程的图片进行顺序播放以达到视觉上的3D效果。
建模之前必须准备好装有Papervision3D以及编程软件的电脑,还需要有一个熟练的编程员,已经完成了每一块岩石标本的全景图像采集(24张照片)。
4.2.3.1 图片的处理
1)首先打开 Photoshop 软件,导入模型的照片,选择执行菜单—选择—色彩范围,在弹出的对话框中调节颜色融差。主要是为了对灯光效果下的照片进行亮度均布。
2)使用钢笔工具对照片进行选择性抠取,去掉模型外部其他部分,然后将完成的图片保存为jpg格式文件,每一个模型的所有jpg文件保存到一起。
4.2.3.2 三维建模
1)在利用Papervision3D成像建模时,必须进行至少4个要素的初始化:视窗、场景、摄像机、渲染器。①视窗:使用者观看的视窗,简单的可以理解成Flash里面的画布大小,视窗也可以理解成为渲染的尺寸,否则画面将无限大。②场景:场景是指整个3D的场景。③摄像机:很多人要问,为什么有了摄像机还要视窗呢?摄像机是用来拍画面的,视窗是用来看画面的,摄像机拍到的并不会在视窗中完全地展现出来,看到的画面的大小就取决于视窗的大小。④渲染器:其作用是把所有输入资料变成图像。
2)新建一个actionscript档案,保存为test01.as文件,编写如下代码:
Package {
Public class test01 extend sprite {
Public function test01():void {
}
}
}
.as代表的是类结构文件后缀,test01为软件本身的系统配置文件,所有的PV3D都必须继承sprite类。建立好文档后,文档格式会引导自动寻找的到系统文件,对软件配置进行修改。
Private var viewport:viewport3d=new viewport 3d(400,00);//初始化视窗
Private var scene:scene 3D=a new scene 3D;//初始化场景
Private var camera:camera 3D=a new camera 3D;//初始化摄像机
Private var renderer:BasicRenderEngine=new BasicRenderengine;//初始化渲染器
通过以上步骤就初始化好了4个要素。
Addchild(viewport)//视窗
Renderer.renderscene(scene,camere,viewport);//渲染图片
Addeventlistener(event,ENTER_FRAME,process);//渲染图片,可以一次渲染30张图片。
3)将拍摄好的24张模型照片放在其中应用,编程时使用/*……*/格式进行分离(图4.102)。
可以运行,我们必须导入以下类:
Import flash.display.sprite;
Import flash.events.event;
Import org.papervision3d.cameras.FreeCamera3D;
Import org.papervision3d.render.BasicRenderEngine;
Import org.papervision3d.scenes.Scene3D;
Import org.papervision3d.view.Viewport3D;
图4.102 地质标本照片组视图
Import org.papervision3d.materials.bitmapfilematerial;
Import org.papervision3d.materials.utils.materialsList;
Import org.papervision3d.objects.primitives.Sphere;
4)执行程序后,就可以看到三维岩石标本模型了。
5)保存三维模型,在WEB浏览中打开,就可旋转观看模型效果(图4.103)。
图4.103 三维建模岩石标本模型