Я, очевидно, OpenGL poseur.OpenGL ES 2.0 Android отображает вершины модели одного цвета?
Моя цель - создать пользовательский элемент управления Android GLSurfaceView с помощью GLES20, который может загрузить файл ресурсов STL (https://en.wikipedia.org/wiki/STL_(file_format)) и отобразить его в одном определенном цвете с фиксированным освещением. Сама модель будет вращаться; освещение и цвет будут исправлены.
Звучит просто, но я не могу найти способ применить то, что я узнал из множества простых примеров треугольника/куба с отдельным цветом на каждом лице, до модели с 35 тыс. Лиц (не так, чтобы число лиц было действительно вопросы).
Я заимствованное это довольно приличный код [который загружает файлы ASCII STL] ...
https://bitbucket.org/saschawillems/opengl-es/src/ed3b324dda4b/stlviewer/?at=master
... и изменил его для запуска в Android Studio и загружать бинарные файлы STL:
https://bitbucket.org/swooby/opengl-es/src/8bf43e1583c2/stlviewer/?at=binary
шейдер код Отображатель просто вычисляет цвет с помощью нормалей граней, что приводит милый эффект радуги с иллюзией освещаться:
https://bitbucket.org/swooby/opengl-es/src/8bf43e1583c238f4397bc469b13cd60dcb34674b/stlviewer/app/src/main/java/de/saschawillems/stlviewer/GLES20Renderer.java?at=binary&fileviewer=file-view-default#GLES20Renderer.java-166
я беру это в виду, однако, что нет реального фактического освещения не происходит здесь ,
Мне, должно быть, что-то не хватает, потому что я думаю, что то, что я хочу сделать, еще проще, чем вычисление цветов из нормалей; Я просто хочу нарисовать объект, используя один определенный цвет, затененный от нормалей. Я попытался сделать это, установив цвет фрагмента на константу, но это приводит к очень 2D-изображению/силуэту без теней. Я абсолютно уверен, что это требует добавления освещения, и, возможно, это добавляет крошечный код, но я, очевидно, такой позера, что я не могу понять, что это даже сложный способ сделать это.
Я искал по всему Гуглу примеры того, что я хочу делать; Я бы подумал, что это будет и легко найти, но я не смог его найти. Я просто ищу простой классический пример «Чайник», где можно определить цвет. Любой, кто хочет показать мне, как я могу просто прописать это, или где я могу найти простой пример того, что я пытаюсь сделать?
Спасибо!
Pv
Спасибо @mikkokoo! Я попробую. В то же время мне повезло с использованием библиотеки Rajawali3d, и я планировал перепроектировать простейший исходный код OpenGLES2, который я могу сделать, чтобы отобразить освещенный объект и ответить на мой вопрос здесь. Мне показалось странным, что я не могу легко найти простой пример вроде этого уже существующего. – swooby