나는이 튜토리얼을 따라 Android 애플리케이션에 OpenGL을 추가하려고합니다. https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html. 모든 예제에서 셰이프는 MyGLRenderer 생성자에서 만들어졌지만 렌더러가 만들어진 후에 동적으로 OpenGL 셰이프를 추가 할 수있는 방법을 알고 싶습니다. 어떻게 할 수 있습니까?동적으로 OpenGL 모양을 추가하십시오.
8
A
답변
1
도형 삼각형, 쿼드, 원 등. draw()
메서드를 정의하는 'Shape'인터페이스에서. http://tutorials.jenkov.com/java/interfaces.html
그런 다음 필요에 따라 목록을 만들고 그 안에 모양과 모양을 밀어 넣습니다. http://www.codejava.net/java-core/collections/java-list-collection-tutorial-and-examples
onDrawFrame(GL10 gl)
메서드에서 모양 목록을 반복합니다. 또한
for(Shape s : shapeList) s.draw(gl);
는, 아마도
glTranslate
통화
3
당신은 인터페이스 나 클래스라는 모양을 만들의 모양으로 모양의 위치를 추가해야합니다. 3D 모양 (꼭짓점, 인덱스, 색상 데이터 등)을 렌더링하는 데 필요한 데이터가 포함됩니다. 또는 렌더링을위한 VAO/VBO/텍스처 ID/다른 ID.
클래스를 사용하는 이점은 메소드를 확장하고 모든 것을 하나의 클래스로 유지하면서 클래스를 확장하고 더 많은 클래스 (큐브, 피라미드 등)를 생성하여 객체를 사용자 정의 할 수 있다는 것입니다.
당신이 클래스 (들)을 생성 한 후, 새 목록이나지도 작성 :
public List<Shape> shapes = new ArrayList<>();
//add whatever shapes you want. Create them at runtime (generate)
// or keep them static. It is up to you
당신은 또한 렌더링 방법을 구현할 수 생성이 클래스에서합니다. 거기에서 당신은 물체를 그립니다. 클래스를 사용하는 이점은이 클래스에 드로잉을 추가 할 수 있다는 것입니다. 클래스에 특정 그리기 방법을 정의하지 않은 경우 주 렌더링 방법에서 모든 객체를 수동으로 그려야합니다.
예제를 제공 할 수 있습니까? 나는 이해하지 못한다 – amanda45
@ James-Poag- 나는 어디에서 목록을 만들 수 있습니까? – amanda45