给定一组Faces,每个面包含顶点数和指向矢量std :: Vector中顶点的指针,我想迭代所有面并使用glDrawElements绘制每个面:
编辑:我刚注意到我忘了激活vertex_array
// AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FIRApp.configure()
return true
}
// ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
FIRCrashMessage("A test message")
fatalError()
}
// Run script in Build Phases that uploads symbol files
GOOGLE_APP_ID=our_google_app_id
"${PODS_ROOT}"/FirebaseCrash/upload-sym "serviceaccount.json"
// Podfile (using latest versions as of 2017-05-12, v3.17.0)
pod 'Firebase/Core'
pod 'Firebase/Crash'
但显然这不能正常工作,并且没有任何显示。
编辑:启用GL_VERTEX_ARRAY会在屏幕上绘制一些内容,但不会绘制我尝试创建的模型。因此,寻址似乎有问题。
答案 0 :(得分:1)
您的索引数组没有意义。索引glDrawElements
将仅使用您已设置的顶点数组 - 并且您正在为每个单独的多边形设置一个新数组。
这意味着
indices.push_back(f.vertices[i]);
应该在概念上只是
indices.push_back(i);
最后意味着您可以完全跳过索引并使用
glDrawArrays(GL_POLYGON,0,f.vcount);
请注意,您在此处所做的是渲染对象的非常无效的方法。如果你对整个对象使用单个绘图调用,你会好得多。您可以通过手动将多边形三角化为三角形作为预处理步骤来实现。