powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java3D
25 сообщений из 31, страница 1 из 2
Java3D
    #38019784
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро всем.

Работаю с Java3D.
Привожу код:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package java3d;

/**
*
* @author IT3
*/
import javax.vecmath.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.net.URL;
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.image.*;
import com.sun.j3d.utils.applet.MainFrame;

public class Java3D extends Applet {

public static void main(String[] args) {
//--------------------------------------------------------------------------------[Page 24]15
new MainFrame(new Java3D(), 480, 480);
String path = System.getProperty("java.library.path");
System.out.println(path);

}

private SimpleUniverse su;

public void init() {
GraphicsConfiguration gc =
SimpleUniverse.getPreferredConfiguration();
Canvas3D cv = new Canvas3D(gc);
setLayout(new BorderLayout());
add(cv);
BranchGroup bg = createSceneGraph();
bg.compile();
su = new SimpleUniverse(cv);
su.getViewingPlatform().setNominalViewingTransform();
su.addBranchGraph(bg);
}

public void destroy() {
su.cleanup();
}

private BranchGroup createSceneGraph() {
BranchGroup root = new BranchGroup();
TransformGroup spin = new TransformGroup();
spin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
root.addChild(spin);
// 3d text
Appearance ap = new Appearance();
ap.setMaterial(new Material());
Font3D font = new Font3D(new Font("Helvetica", Font.PLAIN, 1),
new FontExtrusion());
Text3D text = new Text3D(font, "Java 3D");
Shape3D shape = new Shape3D(text, ap);
// transform for text
Transform3D tr = new Transform3D();
tr.setScale(0.2);
tr.setTranslation(new Vector3d(-0.35,-0.15,0.75));
TransformGroup tg = new TransformGroup(tr);
root.addChild(tg);
tg.addChild(shape);
// globe
ap = createAppearance();
spin.addChild(new Sphere(0.7f,
Primitive.GENERATE_TEXTURE_COORDS, 50, ap));
// rotation
Alpha alpha = new Alpha(-1, 6000);
RotationInterpolator rotator =
new RotationInterpolator(alpha, spin);
BoundingSphere bounds = new BoundingSphere();
rotator.setSchedulingBounds(bounds);
spin.addChild(rotator);
// background and lights
Background background = new Background(1.0f, 1.0f, 1.0f);
background.setApplicationBounds(bounds);
root.addChild(background);
AmbientLight light =
new AmbientLight(true, new Color3f(Color.red));
light.setInfluencingBounds(bounds);
root.addChild(light);
//------------------------------------------------------------------------------[Page 25]75
PointLight ptlight = new PointLight(new Color3f(Color.white),
new Point3f(3f,3f,3f), new Point3f(1f,0f,0f));
ptlight.setInfluencingBounds(bounds);
root.addChild(ptlight);
return root;
}

private Appearance createAppearance(){
Appearance ap = new Appearance();
URL filename =
getClass().getClassLoader().getResource("c:/earth.jpg");
TextureLoader loader = new TextureLoader(filename, this);
ImageComponent2D image = loader.getImage();
Texture2D texture =
new Texture2D(Texture.BASE_LEVEL, Texture.RGBA,
image.getWidth(), image.getHeight());
texture.setImage(0, image);
texture.setEnable(true);
texture.setMagFilter(Texture.BASE_LEVEL_LINEAR);
texture.setMinFilter(Texture.BASE_LEVEL_LINEAR);
ap.setTexture(texture);
return ap;
}
}


Все библиотеки подключила :

j3dutils.jar
j3dcore.jar
vecmath-1.5.2.jar
j3dcore-d3d_dll.jar
j3dcore-ogl_dll.jar
j3dcore_dll.jar


Но у меня выходит ошибка:

окт 31, 2012 11:03:25 AM javax.media.j3d.NativePipeline getSupportedOglVendor
SEVERE: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
Exception in thread "Thread-2" java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:280)
at java3d.Java3D.init(Java3D.java:35)
at com.sun.j3d.utils.applet.MainFrame.run(MainFrame.java:267)
at java.lang.Thread.run(Thread.java:722)

Работаю в NetBeans 7.2.

Привожу проект
...
Рейтинг: 0 / 0
Java3D
    #38019801
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
You need to put the native files (.dll's) in the path for netbeans to
find them.
...
Рейтинг: 0 / 0
Java3D
    #38019802
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
You must have Java3D DLL in your path.
This can be :

* C:\Windows\System32
* /JRE/lib/ext folder
* same folder you start your application
...
Рейтинг: 0 / 0
Java3D
    #38019803
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Java3D
    #38019831
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grasoff.net,


I added all libraries in Java NetBeans Project Properties -> Add Jar file -> libs (mine). I have just done like you said, but error is just the same.
...
Рейтинг: 0 / 0
Java3D
    #38019845
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_CobskeeI added all libraries in Java NetBeans Project Properties -> Add Jar file -> libs (mine). I have just done like you said, but error is just the same.
Сами DLL у вас не подключены:

http://www3.ntu.edu.sg/home/ehchua/programming/opengl/java3d.html
...
Рейтинг: 0 / 0
Java3D
    #38019858
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

С этим все получилось, а теперь выпадает вот такая ошибка

Exception in thread "Thread-2" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1388)
at com.sun.j3d.utils.image.TextureLoader$2.run(TextureLoader.java:430)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:425)
at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:380)
at java3d.Java3D.createAppearance(Java3D.java:110)
at java3d.Java3D.createSceneGraph(Java3D.java:80)
at java3d.Java3D.init(Java3D.java:49)
at com.sun.j3d.utils.applet.MainFrame.run(MainFrame.java:267)
at java.lang.Thread.run(Thread.java:722)
...
Рейтинг: 0 / 0
Java3D
    #38019864
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зрите в корень:
Helen_Cobskeeinput == null
ImageIO
TextureLoader
...
Рейтинг: 0 / 0
Java3D
    #38019866
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_Cobskee getClass().getClassLoader().getResource("c:/earth.jpg");

Ха. Три раза. Вы понимаете что этот код делает? Или абы что написать?
...
Рейтинг: 0 / 0
Java3D
    #38019873
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Я понимаю, но ошибку нет.
...
Рейтинг: 0 / 0
Java3D
    #38019880
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_Cobskeeinput == null
ImageIO
TextureLoader

Едрён-батно.
Кто? TextureLoader.
Обрыгался на чем? На загрузке изображения - ImageIO.
Почему? Потому что input == null.

Ищем в коде, про текстуры. Находим вышеуказаную пургу.

getClass().getClassLoader().getResource()/.getResourceAsStream()
Относятся к базовым классам Java. Читайте в JavaDoc о том что именно они делают.
Из любого места в файловой системе они не читают. Они вообще в файловой системе имеют право не читать.
Для чтения файлов есть File и прочий API а пакетах IO. Если вы планируете быть Java разработчиком, то вам стоит знать каждый класс и метод, которые вы используете.
...
Рейтинг: 0 / 0
Java3D
    #38020103
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Вы можете сказать, почему у меня не показывается текстура? Ошибок больше нет.
...
Рейтинг: 0 / 0
Java3D
    #38020131
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_CobskeeВы можете сказать, почему у меня не показывается текстура? Ошибок больше нет.
Потому что filename имеет значение null. Пошаговую отладку так и не осилили?
...
Рейтинг: 0 / 0
Java3D
    #38020201
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Но если бы он не видел image, то сказал, что его нет, но я его закинула туда, где он будет его видеть, но текстура не грузится
...
Рейтинг: 0 / 0
Java3D
    #38020225
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте java.awt.Image и используйте конструктор TextureLoader с ним. А так ничего не понятно, что вы поменяли, что грузится, что не грузиться, откуда не грузится и т.п.
...
Рейтинг: 0 / 0
Java3D
    #38020255
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Можете ссылку какую-нибудь сбросить с примерами работы с текстурой и картинками?
...
Рейтинг: 0 / 0
Java3D
    #38020278
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_CobskeeМожете ссылку какую-нибудь сбросить с примерами работы с текстурой и картинками?
Легко:
https://www.google.com/search?q=Java+3D+examples+textureloader
...
Рейтинг: 0 / 0
Java3D
    #38020289
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Спасибо.
...
Рейтинг: 0 / 0
Java3D
    #38020825
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHelen_Cobskeeinput == null
ImageIO
TextureLoader

Едрён-батно.
Кто? TextureLoader.
Обрыгался на чем? На загрузке изображения - ImageIO.
Почему? Потому что input == null.

Ищем в коде, про текстуры. Находим вышеуказаную пургу.

getClass().getClassLoader().getResource()/.getResourceAsStream()
Относятся к базовым классам Java. Читайте в JavaDoc о том что именно они делают.
Из любого места в файловой системе они не читают. Они вообще в файловой системе имеют право не читать.
Для чтения файлов есть File и прочий API а пакетах IO. Если вы планируете быть Java разработчиком, то вам стоит знать каждый класс и метод, которые вы используете.чо огресивный какой ты
случилось чо?
...
Рейтинг: 0 / 0
Java3D
    #38021392
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, всем. Кстати, я нашла свою ошибку:
строку ap.setTexture(texture) поменяйте на строку
ap.setTexture(loader.getTexture()) и все сработает.
...
Рейтинг: 0 / 0
Java3D
    #38022785
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте всем.
Подскажите, пожлуйста, где можно скачать бесплатно кгиги по Java 3D графике для начинающих. Скиньте ссылку, если можно.
Спасибо всем
...
Рейтинг: 0 / 0
Java3D
    #38023751
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_CobskeeЗдравствуйте всем.
Подскажите, пожлуйста, где можно скачать бесплатно кгиги по Java 3D графике для начинающих. Скиньте ссылку, если можно.
Спасибо всемrutracker.org думаю )
...
Рейтинг: 0 / 0
Java3D
    #38023765
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, всем.



Взяла примеры из википедии для изучения OpenGL:


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package opengl;

/**
*
* @author IT3
*/
import javax.media.opengl.GL;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.glu.GLU;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.media.opengl.awt.*;
//import javax.media.opengl.GL;
//import javax.media.nativewindow.windows.WindowsGraphicsDevice;
//import javax.media.nativewindow.

public class OpenGLClass implements GLEventListener, KeyListener {
private float rotateT = 0.0f;
private static final GLU glu = new GLU();

public void display(GLAutoDrawable gLDrawable) {
final GL gl = gLDrawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glClear(GL.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslatef(0.0f, 0.0f, -5.0f);

gl.glRotatef(rotateT, 1.0f, 0.0f, 0.0f);
gl.glRotatef(rotateT, 0.0f, 1.0f, 0.0f);
gl.glRotatef(rotateT, 0.0f, 0.0f, 1.0f);
gl.glRotatef(rotateT, 0.0f, 1.0f, 0.0f);

gl.glBegin(GL.GL_TRIANGLES);

// Front
gl.glColor3f(0.0f, 1.0f, 1.0f);
gl.glVertex3f(0.0f, 1.0f, 0.0f);
gl.glColor3f(0.0f, 0.0f, 1.0f);
gl.glVertex3f(-1.0f, -1.0f, 1.0f);
gl.glColor3f(0.0f, 0.0f, 0.0f);
gl.glVertex3f(1.0f, -1.0f, 1.0f);

// Right Side Facing Front
gl.glColor3f(0.0f, 1.0f, 1.0f);
gl.glVertex3f(0.0f, 1.0f, 0.0f);
gl.glColor3f(0.0f, 0.0f, 1.0f);
gl.glVertex3f(1.0f, -1.0f, 1.0f);
gl.glColor3f(0.0f, 0.0f, 0.0f);
gl.glVertex3f(0.0f, -1.0f, -1.0f);

// Left Side Facing Front
gl.glColor3f(0.0f, 1.0f, 1.0f);
gl.glVertex3f(0.0f, 1.0f, 0.0f);
gl.glColor3f(0.0f, 0.0f, 1.0f);
gl.glVertex3f(0.0f, -1.0f, -1.0f);
gl.glColor3f(0.0f, 0.0f, 0.0f);
gl.glVertex3f(-1.0f, -1.0f, 1.0f);

// Bottom
gl.glColor3f(0.0f, 0.0f, 0.0f);
gl.glVertex3f(-1.0f, -1.0f, 1.0f);
gl.glColor3f(0.1f, 0.1f, 0.1f);
gl.glVertex3f(1.0f, -1.0f, 1.0f);
gl.glColor3f(0.2f, 0.2f, 0.2f);
gl.glVertex3f(0.0f, -1.0f, -1.0f);

gl.glEnd();

rotateT += 0.2f;
}

public void displayChanged(GLAutoDrawable gLDrawable,
boolean modeChanged, boolean deviceChanged) {
}

public void init(GLAutoDrawable gLDrawable) {
final GL gl = gLDrawable.getGL();
gl.glShadeModel(GL.GL_SMOOTH);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glClearDepth(1.0f);
gl.glEnable(GL.GL_DEPTH_TEST);
gl.glDepthFunc(GL.GL_LEQUAL);
gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT,
GL.GL_NICEST);
gLDrawable.addKeyListener(this);
}

public void reshape(GLAutoDrawable gLDrawable, int x,
int y, int width, int height) {
final GL gl = gLDrawable.getGL();
if(height <= 0) {
height = 1;
}
final float h = (float)width / (float)height;
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(50.0f, h, 1.0, 1000.0);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}

public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ESCAPE) {
JavaDia.bQuit = true;
JavaDia.displayT = null;
System.exit(0);
}
}

public void keyReleased(KeyEvent e) {
}

public void keyTyped(KeyEvent e) {
}

@Override
public void dispose(GLAutoDrawable glad) {
throw new UnsupportedOperationException("Not supported yet.");
}
}




А это класс для реализации этого класса:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package opengl;

/**
*
* @author IT3
*/
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.awt.GLCanvas;

public class JavaDia implements Runnable {
public static Thread displayT = new Thread(new JavaDia());
public static boolean bQuit = false;

public static void main(String[] args) {
displayT.start();
}

public void run() {
Frame frame = new Frame("Jogl 3D Shape/Rotation");
GLCanvas canvas = new GLCanvas();
canvas.addGLEventListener(new OpenGLClass());
frame.add(canvas);
frame.setSize(640, 480);
frame.setUndecorated(true);
int size = frame.getExtendedState();
size |= Frame.MAXIMIZED_BOTH;
frame.setExtendedState(size);

frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
bQuit = true;
}
});
frame.setVisible(true);
// frame.show();
canvas.requestFocus();
while( !bQuit ) {
canvas.display();
}
}
}


Работаю в Java NetBeans 7.2. IDE

Подключила библиотеку к проекту, которую скачала. Но у меня выходят ошибки.
Посмотрите, пожалуйста, мой проект
...
Рейтинг: 0 / 0
Java3D
    #38023855
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Helen_Cobskee,

Здесь не выкладывает никто кроме вас проекты, просто напишите где ошибка. Судя по тому что реакцию среды на ошибку вы не выкладываете, он даже не компилится. А это значит, что 3д надо отложить в сторону, и вернуться к книгам, которые вам советовали прочитать раньше.
...
Рейтинг: 0 / 0
Java3D
    #38026199
Helen_Cobskee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapecker,

Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: no nativewindow_jvm in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at com.sun.nativewindow.impl.NativeLibLoaderBase.loadLibraryInternal(NativeLibLoaderBase.java:199)
at com.sun.nativewindow.impl.NativeLibLoaderBase.access$000(NativeLibLoaderBase.java:50)
at com.sun.nativewindow.impl.NativeLibLoaderBase$DefaultAction.loadLibrary(NativeLibLoaderBase.java:88)
at com.sun.nativewindow.impl.NativeLibLoaderBase.loadLibrary(NativeLibLoaderBase.java:126)
at com.sun.nativewindow.impl.NativeLibLoaderBase$1.run(NativeLibLoaderBase.java:133)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.nativewindow.impl.NativeLibLoaderBase.loadNativeWindow(NativeLibLoaderBase.java:131)
at com.sun.nativewindow.impl.jvm.JVMUtil.<clinit>(JVMUtil.java:53)
at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:625)
at javax.media.opengl.awt.GLCanvas.<clinit>(GLCanvas.java:78)
at opengl.JavaDia.run(JavaDia.java:26)
at java.lang.Thread.run(Thread.java:722)
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Java3D
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]