개인 재정 3D 자바 세계 구축을위한 3 단계 - 더미

3D 자바 세계 구축을위한 3 단계 - 더미

차례:

비디오: Drone Simulation and Control, Part 3: How to Build the Flight Code 2025

비디오: Drone Simulation and Control, Part 3: How to Build the Flight Code 2025
Anonim

몇 가지 간단한 단계를 통해 JavaFX에서 비교적 단순한 3D 프로그램을 작성하여 3 차원 세계를 표시 할 수 있습니다 (아래 예 참조). 보시다시피,이 3D 공간에는 4 개의 모양이 포함됩니다: 구, 정육면체, 원통 및 피라미드. 이 짧은 목록은 원통을 시작하는 방법을 보여줍니다.

이 예는 때때로 기술적 인 부분이 많으므로 Thinking Cap을 사용하십시오. 특히 3D 프로그래밍을 처음 사용하는 경우에는 3D 세계를 만드는 데 관련된 많은 개념이 혼란 스러울 수 있습니다.

JavaFX의 샘플 3D 프로그램입니다.

1 단계: 원통 추가

이 단계에서는 기본 3D 객체를 월드에 추가합니다. JavaFX는 실린더, 상자 및 구체와 같은 세 가지 기본 모양을 추가 할 수 있습니다. 실린더를 추가하여 시작하십시오.

실린더 실린더 = 새 실린더 (100, 50); 뿌리. getChildren (). 추가 (원통형);

Cylinder 클래스 생성자는 실린더의 반경과 높이의 두 인수를받습니다. 이 예제는 대략 높이가 4 배인 하키 퍽 모양의 실린더를 만듭니다. 그런 다음 장면의 루트 노드에 원통을 추가합니다.

이 시점에서 실린더는 세계에 존재하지만 보이지 않습니다. 2D 도형에 대해 알고있는 것을 기반으로 채우기 색상 (setFill) 또는 획 색상 (setStroke)을 추가하여 눈에 보이게 할 수 있습니다. 그러나 이것이 3D 객체가 작동하는 방식이 아닙니다. 다음 단계에서는 실린더의 표면에 재질을 적용하여 장면에서 볼 수 있도록하는 방법을 알아 봅니다.

2 단계: 자료 만들기

3D 객체의면을 렌더링하는 것은 평면의 2 차원 객체를 렌더링하는 것보다 훨씬 복잡합니다. 2D 오브젝트의 경우, setFill 메소드를 사용해 Paint 오브젝트를 적용하면됩니다. 페인트는 단순한 색상, 그라디언트 색상 또는 이미지 일 수 있습니다.

3D 오브젝트의 경우 페인트를 적용하지 않습니다. 대신 PhongMaterial 클래스로 대표되는 Phong 머티리얼 이라는 특수 객체를 적용합니다. 퐁 (Phong) 소재 (1970 년대 선구적인 컴퓨터 그래픽 전문가 인 Bui Tuong Phong의 이름을 따서 명명 됨)는 3D 오브젝트의 얼굴이 사실적으로 렌더링되는 방법을 제공합니다.

다음 코드는 두 개의 음영을 기반으로 간단한 Phong 재질을 생성 한 다음 해당 재질을 실린더에 적용합니다.

PhongMaterial blueStuff = new PhongMaterial (); blueStuff. setDiffuseColor (색상. 라이트 블루); blueStuff. setSpecularColor (Color.Blue); 실린더. setMaterial (blueStuff);

Phong 재질이 실린더에 적용된 후 그림과 같이 실린더가 장면 내에서 보입니다.

퐁 (Phong) 재질의 3D 실린더.

3 단계: 실린더 변환

실린더가 매우 입체적으로 보이지 않는다는 것을 의심 할 여지없이 알게되었습니다. 그것은 여러분이 그것을보고 있기 때문입니다: 카메라가 x 축과 y 축의 교차점을 똑바로 가리키고 있으며 실린더가 그 바로 그 지점에 집중되어 있습니다.

실린더에 대한 원근감을 얻기 위해 x, y 및 z 좌표를 변환하여 3D 공간의 다른 위치로 이동할 수 있습니다. 예:

실린더. setTranslateX (-200); 실린더. setTranslateY (200); 실린더. setTranslateZ (200);

여기서 실린더는 왼쪽에서 200 단위, 아래쪽에서 200 단위, 카메라에서 200 단위 멀리 이동합니다. 결과 뷰는 여기에서 볼 수 있듯이 원통처럼 보입니다.

번역 된 3D 실린더.

이 그림에서는 실린더가 앞으로 회전하여 약간의 상단 표면을 볼 수있는 것처럼 보입니다. 그러나 이것은 사실이 아닙니다. 실제로 일어난 일은 실린더 가장자리를 더 이상 보지 않는다는 것입니다.

대신 실린더가 카메라 아래에 있기 때문에 카메라를 내려다 보았습니다. 따라서, 당신은 약간의 윗면을 볼 수 있습니다. 당신은 또한 측면에서 그것을보고 있는데, 그것은 단지 왜 약간 기울어 진 것처럼 보입니다.

3D 자바 세계 구축을위한 3 단계 - 더미

편집자의 선택

Nikon D3100의 뷰 파인더 대신 모니터 사용 - 많은 최신 dSLR과 같은 인력

Nikon D3100의 뷰 파인더 대신 모니터 사용 - 많은 최신 dSLR과 같은 인력

Nikon D3100은 라이브 뷰를 제공합니다.이 뷰는 사진을 찍을 때 모니터를 뷰 파인더로 사용합니다. 라이브 뷰를 켜는 것은 비디오 촬영 프로세스의 첫 번째 부분이기도합니다. 사실, 동영상을 촬영할 때 뷰 파인더 대신 모니터를 사용해야합니다. 라이브 뷰 사용 ...

을 사용 - Nikon D7000의 라이브 뷰 기능을 사용하여 인물

을 사용 - Nikon D7000의 라이브 뷰 기능을 사용하여 인물

뷰 파인더 대신에 모니터를 사용하여 사진을 구성하십시오. 많은면에서 라이브 뷰 모드에서 사진을 찍는 것은 일반적인 뷰 파인더 촬영과 다르지 않습니다. 그러나 초점을 포함하여 몇 가지 중요한 단계는 라이브 뷰를 전환 할 때 매우 다르게 작동합니다. 기본 사항 ...

편집자의 선택

Photoshop CS6에서 소실점 작업 방법 - Photoshop CS6의 소실점 명령

Photoshop CS6에서 소실점 작업 방법 - Photoshop CS6의 소실점 명령

원근감 평면이있는 이미지에서 사실적인 편집을 할 수 있습니다. 소실점을 사용하면 이미지에서 평면을 지정한 다음 다양한 기법을 사용하여 해당 평면에서 객체를 추가하거나 제거 할 수 있습니다. 편집이 필요한 이미지를 엽니 다. ...

Photoshop CC 픽셀의 측정, 계산 및 분석

Photoshop CC 픽셀의 측정, 계산 및 분석

연구원 및 과학자를 위해 설계된 < Photoshop CC의 측정 기능은 매우 강력합니다. 현미경이나 망원경으로 볼 수있는 기술적 인 이미지의 Whattvers 수를 계산할 수 있습니다. 이미지의 모든 요소의 정확한 크기를 알고 있으면 거의 모든 것을 발견 할 수 있습니다.

편집자의 선택

온라인 커뮤니티가 느리고 꾸준히 승리하는 이유 - 더미

온라인 커뮤니티가 느리고 꾸준히 승리하는 이유 - 더미

온라인 커뮤니티는 정착되지 않았습니다. 잊을 수없는 일. 최선의 시나리오는 꾸준하고 유기적 인 성장을 달성하는 것이지만, 진실은 하룻밤 사이에 발생하지 않는다는 것입니다. 한 번에 소수의 회원 만 있기 때문에 처음에는 좌절 할 수 있으며 고용주는 커뮤니티가 빠르게 성장하고 있다고 생각하지 않을 수도 있지만 진실은 ...

블로그 사이트의 글꼴을 찾는 위치 - 웹상의 많은 장소에서 찾을 수있는 인형

블로그 사이트의 글꼴을 찾는 위치 - 웹상의 많은 장소에서 찾을 수있는 인형

글꼴을 사용하면 최상의 사이트를 찾기가 어려울 수 있습니다. Google Web 글꼴 외에도 다음 목록은 무료 또는 유료로 글꼴을 찾는 데 내가 가장 좋아하는 장소를 알려줍니다. 글꼴 찾기 퀘스트를 진행하면서 친숙해질 필요가 있습니다.

일부 온라인 커뮤니티 회원이 다른 사람보다 오래 머무는 이유 - 인형

일부 온라인 커뮤니티 회원이 다른 사람보다 오래 머무는 이유 - 인형

온라인 커뮤니티가 일시적인 회원을 호스트한다는 것을 이해합니다. 그들은 장기간의 참가자들이지만, 대부분의 회원들은 여러 가지 이유로 잠시 후에 떠납니다. 종종 출발점은 커뮤니티 자체와는 아무런 관련이 없으며 다음 단계로 넘어갈 시간입니다.