java3d读取3ds文件_用Java3D 3DS FileLoader读取.3DS文件的方法

本文展示了如何使用Java3D库的Loader3DS类加载和展示3DS文件。通过实例化Loader3DS,加载3DS模型,并将其添加到BranchGroup中,结合MouseRotate、MouseTranslate和MouseWheelZoom行为进行交互控制。同时,还提供了在JFrame中展示3DS模型的方法。
摘要由CSDN通过智能技术生成

import com.microcrowd.loader.java3d.max3ds.Loader3DS;

import com.sun.j3d.loaders.Scene;

import com.sun.j3d.utils.behaviors.mouse.MouseRotate;

import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;

import com.sun.j3d.utils.behaviors.mouse.MouseWheelZoom;

import com.sun.j3d.utils.universe.SimpleUniverse;

import java.awt.Color;

import java.io.FileNotFoundException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.media.j3d.Alpha;

import javax.media.j3d.BoundingSphere;

import javax.media.j3d.BranchGroup;

import javax.media.j3d.DirectionalLight;

import javax.media.j3d.Transform3D;

import javax.media.j3d.TransformGroup;

import javax.vecmath.Color3f;

import javax.vecmath.Point3d;

import javax.vecmath.Vector3f;

/**

*

* @author hadeslee

*/

public class Simple3DSLd {

public Simple3DSLd() {

build();

}

private void build() {

try {

BranchGroup bg = loadBranchGroup();

SimpleUniverse u = new SimpleUniverse();

u.getViewingPlatform().setNominalViewingTransform();

u.addBranchGraph(bg);

} catch (FileNotFoundException ex) {

Logger.getLogger(Simple3DSLd.class.getName()).log(Level.SEVERE, null, ex);

}

}

private BranchGroup loadBranchGroup() throws FileNotFoundException {

Loader3DS l3ds = new Loader3DS();

Scene scene = l3ds.load("K:/sample.3ds");

System.out.println("scene=" + scene);

if (scene != null) {

BranchGroup objRoot = new BranchGroup();

BranchGroup bg = scene.getSceneGroup();

TransformGroup objTrans = new TransformGroup();

Transform3D trans = new Transform3D();

trans.setScale(0.3f);

objTrans.setTransform(trans);

objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

objTrans.addChild(bg);

objRoot.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值