Your SlideShare is downloading. ×
0
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Java 3D
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Java 3D

2,558

Published on

Written by Vietnamese

Written by Vietnamese

Published in: Technology, Art & Photos
1 Comment
5 Likes
Statistics
Notes
  • chào bạn. Mình muốn lấy slide của bạn tham khảo nhưng bị xung đột flash nên ko thể load đc.
    Bạn có thể gửi slide này vào mail của mình đc ko
    congacon2810@gmail.com

    Thanks s lot :X
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
2,558
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
1
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JAVA 3D PROGRAMING
    Thành viên nhóm
    Nguyễn Minh Tuấn – 07520389
    Hà Hữu Liêm – 07520191
    Nguyễn Anh Huy – 07520157
  • 2. Contents
    Tổng quan về Java 3D.
    Scene Graph là gì?
    Simple Application.
    Shape3D.
    Geometry.
    Appearance.
    Texture.
    Background.
  • 3. 1. Java 3D OverView
    Java 3D API là một giao diện lập trình ứng dụng đồ họa tương tác 3 chiều cho việc xây dựng ứng dụng và Applet trong Java.
    - Dùng một scene graph để mô hình và điều khiển scene
    Nhanh và cài đặt hiệu quả trên nhiều nền khác nhau như: OpenGL, DirectX.
    Được thiết kế cho “Write one, run anywhere”.
  • 4. 2. Scene Graph là gì?
    Một scene graph là một cấu trúc dữ liệu giống như cây mà được lưu trữ, tổ chức và biểu diễn thông tin màn hình 3D (3D objects, materials, lights, behaviors).
    Scene graph làm cho việc lập trình 3D trở nên dễ dàng hơn là code trực tiếp trong OpenGL hay DirectX.
  • 5. 2. Scene Graph là gì?
    Ví dụ:
    Các phần cơ bản của máy bay
    Lắp ráp các bộ phận liên quan
    Lắp ráp những cái còn lại thành máy bay cuối cùng
  • 6. 2. Scene Graph là gì?
    Phác họa một sơ đồ đồ thị cảnh:
  • 7. 2. Scene Graph là gì?
    Nodes and Node Components (objects)
    Arcs (object relationships)
    Group
    Parent-child link
    Leaf
    Reference
    Node Component
    Other objects
  • 8. 2. Scene Graph là gì?
    Lớp Node: là một thành phần trong scene graph.
    • Leaf nodes: không có node con.
    • 9. Shapes, lights, sounds…
    • 10. Animation Behavior.
    • 11. Group nodes: có node con
    • 12. transforms, …
  • 2. Scene Graph là gì?
    NodeComponent: là một gói các thuộc tính cho một node.
    • Geometry of a shape.
    • 13. Color of a shape.
    • 14. Sound data to play.
  • 2. Scene Graph là gì?
    Sơ đồ phân lớp:
  • 15. 2. Scene Graph là gì?
    Content Branch
    View Branch
  • 16. 2. Scene Graph là gì?
    VirtualUniverse: một tập hợp các scene graph.
    Thông thường là một universe trên một ứng dụng.
    Locale: vị trí trong universe đặt scene graph.
    Thông thường là một locale trên một universe.
    Branch graph: một scene graph
    Thông thường là một vài nhánh đồ thị trên một Locale.
  • 17. 2. Scene Graph là gì?
    Xây dựng một Universe:
    • Xây dựng một universe:
    VirtualUniverse myUniverse = new VirtualUniverse();
    • Xây dựng một locale:
    Locale myLocale = new Locale( myUniverse);
    • Xây dựng một branch group:
    BranchGroup myBranch = new BranchGroup( );
  • 18. 2. Scene Graph là gì?
    • Xây dựng node và nhóm các node:
    Shape3D myShape = new Shape3D( myGeom, myAppear );
    Group myGroup = new Group( );
    myGroup.addChild( myShape );
    Thêm chúng đến Branch Group:
    myBranch.addChild( myGroup );
    Thêm branch group đến Locale:
    myLocale.addBranchGraph( myBranch );
  • 19. 3. Simple Application
    Các bước để lập trình Java 3D:
    1. Create a Canvas3D object
    2. Create a VirtualUniverse object
    3. Create a Locale object, attaching it to the VirtualUniverse object
    4. Construct a view branch graph
    a. Create a View object
    b. Create a ViewPlatform object
    c. Create a PhysicalBody object
    d. Create a PhysicalEnvironment object
    e. Attach ViewPlatform, PhysicalBody, PhysicalEnvironment, and Canvas3D objects to View object
    5. Construct content branch graph(s)
    6. Compile branch graph(s)
    7. Insert subgraphs into the Locale
  • 20. 3. Simple Application
    public class HelloJava3D
    {
    public HelloJava3D()
    {
    SimpleUniverse universe = new SimpleUniverse();
    BranchGroup group = new BranchGroup();
    group.addChild(new ColorCube(0.3));
    universe.getViewingPlatform().setNominalViewingTransform();
    universe.addBranchGraph(group);
    }
    }
  • 21. 4. Shape3D
    Shape3D là một node lá xây dựng đối tượng 3D.
    • Geometry: hình dạng hay cấu trúc của một hình.
    • 22. Appearance: sự tô màu, độ trong, và hình bóng của một hình.
  • 4. Shape3D
    • Sơ đồ phân lớp:
    • 23. Các phương thức:
  • 4. Shape3D
    • Ví dụ: xây dựng một kim tự tháp từ 5 điểm tọa độ.
  • 4. Shape3D
  • 24. 4. Geometry
    Java 3D có nhiều loại hình học mà dùng tạo độ 3D:
    • Points, Lines, Triangles, Quadrilaterals.
    Các lớp con của Geometry:
    • GeometryArray
    • 25. GeometryStripArray
    • 26. IndexedGeometry.
  • 4. Geometry
    Lớp GeometryArray:
    Là lớp xây dựng các điểm, đường thẳng, tam giác, tứ giác.
    Sơ đồ:
  • 27. 4. Geometry
    Các phương thức GeometryArray:
    void setCoordinate(int index, Point* coordinate)
    void setCoordinate(int index, Point*[] coordinates)
    void setColor(int index, Color* color)
    void setColors(int index, Color*[] colors)
    void setNormal(int index, Vector* normal)
    void setNormals(int index, Vector*[] normals)
    void setTextureCoordinate(int index, Point* coordinate)
    void setTextureCoordinates(int index, Point*[] textCoords)
  • 28. 4. Geometry
    Các lớp con của GeometryArray:
    • PointArray: một điểm tại mỗi đỉnh.
    • 29. LineArray: được tạo ra bởi hai đỉnh.
    • 30. TriangleArray: được tạo ra bởi ba đỉnh.
    • 31. QuadArray: được tạo ra bởi bốn đỉnh.
  • 4. Geometry
    PointArray:
    • Sơ đồ phân lớp:
  • 4. Geometry
    Xây dựng PointArray:
    • Tạo ra danh sách các tọa độ 3D cho các đỉnh:
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    • Tạo ra PointArray và thiết lập các tọa độ đỉnh.
    PointArray myPoints = new PointArray(
    myCoords.length,
    GeometryArray.COORDINATES );
    myPoints.setCoordinates( 0, myCoords );
    • Gắn tất cả vào hình:
    Shape3D myShape = new Shape3D( myPoints, myAppear );
  • 32. 4. Geometry
    LineArray:
    • Sơ đồ phân lớp:
  • 4. Geometry
    Xây dựng LineArray:
    • Tạo ra danh sách các tạo độ 3D cho các đỉnh.
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    • Tạo ra LineArray và thiết lập các tạo độ đỉnh.
    LineArray myLines = new LineArray(
    myCoords.length,
    GeometryArray.COORDINATES );
    myLines.setCoordinates( 0, myCoords );
    • Gắn tất cả vào hình
    Shape3D myShape = new Shape3D( myLines, myAppear );
  • 33. 4. Geometry
    TriangleArray:
    • Sơ đồ phân lớp:
  • 4. Geometry
    Xây dựng TriangleArray:
    • Tạo ra danh sách các tạo độ và pháp tuyến cho các đỉnh.
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    Vector3f[] myNormals = {
    new Vector3f( 0.0f, 1.0f, 0.0f ),
    . . .
    }
    • Tạo TriangleArray và thiết lập các tọa độ đỉnh và các pháp tuyến.
    TriangleArray myTris = new TriangleArray(
    myCoords.length,
    GeometryArray.COORDINATES |
    GeometryArray.NORMALS );
    myTris.setCoordinates( 0, myCoords );
    myTris.setNormals( 0, myNormals );
    • Gắn tất cả vào hình.
    Shape3D myShape = new Shape3D( myTris, myAppear );
  • 34. 4. Geometry
    QuadArray:
    • Sơ đồ phân lớp:
  • 4. Geometry
    Xây dựng QuadArray:
    • Tạo ra danh sách các tạo độ và pháp tuyến cho các đỉnh.
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    Vector3f[] myNormals = {
    new Vector3f( 0.0f, 1.0f, 0.0f ),
    . . .
    }
    • Tạo QuadArry và thiết lập các tọa độ đỉnh và các pháp tuyến.
    QuadArray myQuads = new QuadArray(
    myCoords.length,
    GeometryArray.COORDINATES |
    GeometryArray.NORMALS );
    myQuads.setCoordinates( 0, myCoords );
    myQuads.setNormals( 0, myNormals );
    • Gắn tất cả vào hình.
    Shape3D myShape = new Shape3D( myTris, myAppear );
  • 35. 4. Geometry
    Lớp GeometryStripArray: là mở rộng của GeometryArray để xây dựng một dải các đường và tam giác.
    Sơ đồ phân lớp:
  • 36. 4. GeometryStripArray
    Xây dựng LineStripArray:
    • Tạo ra một danh sách các tọa độ 3D cho các đỉnh.
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    • Tạo ra danh sách dải các đỉnh.
    int[] stripLengths = { 4, 5 };
  • 37. 4. Geometry
    Tạo ra LineStripArray và thiết lập tọa độ các đỉnh.
    LineStripArray myLines = new LineStripArray(
    myCoords.length,
    GeometryArray.COORDINATES,
    stripLengths );
    myLines.setCoordinates( 0, myCoords );
    Gắn tất cả vào hình.
    Shape3D myShape = new Shape3D( myLines, myAppear );
  • 38. 4. Geometry
    Xây dựng TriangleFanArray:
    • Tạo ra danh sách các đỉnh và lighting normal cho các đỉnh.
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    Vector3f[] myNormals = {
    new Vector3f( 0.0f, 1.0f, 0.0f ),
    . . .
    }
    • Tạo ra một danh sách độ dài vertex fan.
    int[] fanLengths = { 5, 6 };
  • 39. 4. Geometry
    • Tạo ra TriangleFanArry và thiết lập các tọa độ đỉnh và linghting normals.
    TriangleFanArray myFans = new TriangleFanArray(
    myCoords.length,
    GeometryArray.COORDINATES |
    GeometryArray.NORMALS,
    fanLengths );
    myFans.setCoordinates( 0, myCoords );
    myFans.setNormals( 0, myNormals );
    • Gắn tất cả vào hình.
    Shape3D myShape = new Shape3D( myFans, myAppear );
  • 40. 4. Geometry
    Xây dựng TriangleStripArray:
    • Tạo ra một danh sách các tọa độ và linghting normals cho các đỉnh.
    Point3f[] myCoords = {
    new Point3f( 0.0f, 0.0f, 0.0f ),
    . . .
    }
    Vector3f[] myNormals = {
    new Vector3f( 0.0f, 1.0f, 0.0f ),
    . . .
    }
    • Tạo ra danh sách độ dài vertex strip.
    int[] stripLengths = { 6, 5 };
  • 41. 4. Geometry
    • Tạo ra TriangleStripArray và thiết lập các tọa độ đỉnh và linght normals.
    TriangleStripArray myTris = new TriangleStripArray(
    myCoords.length,
    GeometryArray.COORDINATES |
    GeometryArray.NORMALS,
    stripLengths );
    myTris.setCoordinates( 0, myCoords );
    myTris.setNormals( 0, myNormals );
    • Gắn tất cả vào hình.
    Shape3D myShape = new Shape3D( myTris, myAppear );
  • 42. 4. Geometry
    IndexedGeometry:
    • IndexedGeometryArray: mở rộng của GeoemetryArray để xây dựng chỉ mục cho các điểm, đường thẳng, tam giác và tứ giác.
    • 43. IndexedGeometryStripArray: mở rộng của IndexedGeometryArray để xaayy dựng dải chỉ mục của các đường và tam giác.
  • 4. Geometry
    Sơ đồ phân lớp:
  • 44. 4. Geometry
    Các phương thức IndexedGeometryArray
    void setCoordinateIndex( int index, int value )
    void setCoordinateIndices( int index, int[] value)
    void setNormalIndex( int index, int value )
    void setNormalIndices( int index, int[] value)
    void setColorIndex( int index, int value )
    void setColorIndices( int index, int[] value )
    void setTextureCoordinateIndex( int index, int value)
    void setTextureCoordinateIndices( int index, int[] value )
  • 45. 5. Appearance
    Lớp Appearance xác định hình học của hình được biểu diễn như thế nào.
  • 46. 5. Appearance
    Sơ đồ phân lớp:
  • 47. 5. Appearance
    Các node thành phần của Appearance:
    • Điều khiển màu và độ trong suốt:
    • 48. ColoringAttributes
    • 49. TransparencyAttributes
    • 50. Điều khiển biểu diễn.
    • 51. PointAttributes
    • 52. LineAttributes
    • 53. PolygonAttributes
    • 54. RenderingAttributes
    • 55. Điều khiển cấu trúc.
    • 56. Texture
    • 57. TextureAttributes
    • 58. TexCoordGeneration
  • 5. Appearance
    Sơ đồ phân lớp
  • 59. 5. Appearance
    Các phương thức của Appearance:
    Appearance()
    void setColoringAttributes( ColoringAttributes
    coloringAttributes)
    void setMaterial(Material material)
    void setTransparencyAttributes( TransparencyAttributes transparencyAttributes)
    void setLineAttributes(LineAttributes lineAttributes)
    void setPointAttributes(PointAttributes pointAttributes)
    void setPolygonAttributes(PolygonAttributes polygonAttributes)
    void setRenderingAttributes(RenderingAttributes renderingAttributes )
  • 60. 5. Appearance
    ColoringAttributes điều khiển:
    • Màu bên trong (dùng khi linght bị vô hiệu hóa)
    • 61. Mô hình bóng mờ.
    Dùng colring attributes khi một hình không được bóng
  • 62. 5. Appearance
    ColoringAttributes:
    • Các phương thức của ColoringAttributes chọn màu và shading model.
    ColoringAttributes( )
    void setColor( Color3f color )
    void setShadeModel( int model )
    • Màu mặc định là màu trắng, và shading model là SHADE_GOURAUD
  • 5. Appearance
    Ví dụ ColoringAttributes:

    ColoringAttributes myCA=new ColoringAttributes();
    myCA.setColor( 1.0f, 1.0f, 0.0f );
    myCA.setShadeModel(ColoringAttributes.SHADE_GOURAUD)
    Appearance myAppear = new Appearance( );
    myAppear.setColoringAttributes( myCA );
    Shape3D myShape = new Shape3D(myGeom,myAppear );

  • 63. 5. Appearance
    TransparencyAttributes điều khiển:
    • Đại lượng độ trong suốt (0.0=đục, 1.0=không nhìn thấy).
    • 64. Chế độ trong suốt(screen-door, alpha-blend, none).
  • 5. Appearance
    TransparencyAttributes:
    • Các phương thức:
    TransparencyAttributes( )
    void setTransparency( float transparency )
    void setTransparencyMode( int mode )
    • Mặc định: độ trong suốt là 0.0 và chế độ trong suốt là FASTEST.
  • 5. Appearance
    Ví dụ TransparencyAttributes:

    TransparencyAttributes myTA = new TransparencyAttribut
    myTA.setTransparency( 0.5f );
    myTA.setTransparencyMode(TransparencyAttributes.BLEND)
    Appearance myAppear = new Appearance( );
    myAppear.setTransparencyAttributes( myTA );
    Shape3D myShape = new Shape3D( myGeom, myAppear);

  • 65. 5. Appearance
    PointAttributes:
    • Các phương thức của PointAttributes thể hiện cách các điểm được biểu diễn.
    • 66. Các phương thức:
    PointAttributes( )
    void setPointSize( float size )
    void setPointAntialiasingEnable( boolean state )
  • 67. 5. Appearance
    LineAttributes:
    • Các phương thức LineAttributes thể hiện các đường được biểu diễn.
    • 68. Các phương thức:
    LineAttributes( )
    void setLineWidth( float width )
    void setLinePattern( int pattern )
    void setLineAntialiasingEnable(boolean state)
    • Mặc định width là 1.0.
    • 69. Patern là : PATTERN_SOLID (default), PATTERN_DASH, PATTERN_DOT, và PATTERN_DASH_DOT
  • 5. Appearance
    PolygonAttributes:
    • Các phương thức PolygonAttributes thể hiện cách đa giác được biểu diễn như thế nào.
    • 70. Các phương thức:
    PolygonAttributes( )
    void setCullFace( int cullface )
    void setPolygonMode( int mode )
    void setPolygonOffset( float offset )
  • 71. 5. Appearance
    RenderingAttributes:
    • Các phương thức RenderingAttributes điều khiển cách mọi thứ được biểu diễn.
    • 72. Các phương thức:
    RenderingAttributes( )
    void setDepthBufferEnable( boolean state )
    void setDepthBufferWriteEnable( boolean state )
    void setAlphaTestFunction( int func )
    void setAlphaTestValue( float value )
  • 73. 7. Texture
    Texture là lớp cơ bản cho hai node thành phần mà chọn ảnh để dùng.
    • Texture2D: chuẩn ảnh 2D.
    • 74. Texture3D: khối ảnh 3D.
    Sơ đồ phân lớp:
  • 75. 7. Texture
    Các phương thức lớp Texture:
    Texture( )
    Texture2D( )
    void setImage( int level, ImageComponent2D image)
    void setEnable( boolean onOff )
  • 76. 8. Background
    Java 3D cung cấp 3 loại màn hình:
    Tất cả các loại trên được xây dựng với node Background với màu, hình ảnh hay hình học.
    Sơ đồ phân lớp:
  • 79. 8. Background
    Các phương thức của Background:
    Background( )
    void setColor( Color3f color )
    void setImage( ImageComponent2D image )
    void setGeometry( BranchGroup group )
  • 80. Thankyou

×