JavaFX 3D 부분 소개(2)카메라

5836 단어 JavaFX
성명:본 블 로그 글 의 오리지널 유형 은 모두 개인 오리지널,저작권 소유 입 니 다.전재 출처:http://blog.csdn.net/ml3947,그리고 본인 의 개인 블 로그:http://www.wjfxgame.com.
이 글 은 이전 편 에 이 어 자바 FX 3D API 에 대한 설명 을 진행 할 예정 이다.
JavaFX 3D Graphics API 에서 Camera 는 Node 이 며 JavaFX 의 Scene 에 직접 추가 할 수 있 습 니 다.3D UI 레이아웃 에서 마음대로 카 메 라 를 이동 할 수 있 습 니 다.이것 은 2D 레이아웃 과 다 를 것 입 니 다.
우선,Camera 의 좌표 체 계 는 다음 과 같 습 니 다.
X 축 은 오른쪽 을 가리 키 고 Y 축 은 아래 를 가리 키 며 Z 축 은 화면 이 관찰자 로부터 멀리 떨 어 진 방향 을 가리킨다.
우 리 는 카 메 라 를 만 들 고 장면 에 추가 할 수 있 습 니 다.
     Camera camera = new PerspectiveCamera(true);
     scene.setCamera(camera);

필드 에 추가:
     Group cameraGroup = new Group();
     cameraGroup.getChildren().add(camera);
     root.getChildren().add(cameraGroup);

카 메 라 를 돌리 고 카메라 그룹 을 이동 합 니 다.
     camera.rotate(45);
     cameraGroup.setTranslateZ(-75);

Perspective Camera
자바 FX 는 투시 카 메 라 를 제공 하여 3D 장면 을 렌 더 링 하고 투시 투영 에 값 을 정의 합 니 다.우 리 는 fieldOfView 를 수정 함으로써 이 값 을 바 꿀 수 있다.
Perspective Camera 를 만 드 는 구조 함수:
    PerspectiveCamera()

    erspectiveCamera(boolean fixedEyeAtCameraZero)

다음 구조 함 수 는 자바 FX 8 에 추 가 된 것 입 니 다.초기 화 할 때 fixed Eye AtCamera Zero 값 을 지정 할 수 있 습 니 다.
장면 이 마치 3D 환경 에서 보 여 주 는 것 같다.
따라서 3D 프로젝트 를 개발 하려 면 PerspectiveCamera(true)를 사용 하여 초기 화하 고 2D 에서 false 를 사용 해 야 합 니 다.
다음은 자주 사용 하 는 방법 몇 가 지 를 소개 한다.
setFieldOfView(double value);
setNearClip(double value);
setFarClip(double value);
           ,         。           ,             ,    

 
 JavaFX  Y  
 
   3D   ,Y     。   JavaFX 3D ,Y     。     Y   ,        xform

      :
  
  root3D = new Xform();
  root3D.rx.setAngle(180.0);
  root.getChildren().add(root3D);
  root3D.getChildren().add(...); //       3D  
Camera   xform ,    :
  
  Camera camera = new PerspectiveCamera(true);
  Xform cameraXform = new Xform();
  root.getChildren().add(cameraXform);
  cameraXform.getChildren().add(camera);
  cameraXform.rz.setAngle(180.0);
Camera        ,    :

  
  Camera camera = new PerspectiveCamera(true);
  Xform cameraXform = new Xform();
  root.getChildren().add(cameraXform);
  cameraXform.getChildren().add(camera);
  Rotate rz = new Rotate(180.0, Rotate.Z_AXIS);
  camera.getTransforms().add(rz);
           JavaFX 3D   ,       3D          。


                  ,    。       :http://blog.csdn.net/ml3947,         :http://www.wjfxgame.com

좋은 웹페이지 즐겨찾기