我正在按照本教程将Opengl添加到我的
Android应用程序中.
https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_3D.html.在所有示例中,形状都是在MyGLRenderer构造函数中创建的,但我想知道如何在创建渲染器后动态添加Opengl形状.如何才能做到这一点?
解决方法
您创建一个名为shape的接口或类.这将包含渲染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
在这个类中,您可以创建一个渲染方法.在那里你绘制对象.使用类的一个优点是可以将绘图添加到此类中.如果未在类中定义特定的绘制方法,则必须手动绘制主渲染方法中的每个对象.