我显然是一个OpenGL poseur。OpenGL ES 2.0 Android渲染单色模型顶点?
我的目标是使用GLES20自定义Android GLSurfaceView控件,该控件可以加载STL资源文件(https://en.wikipedia.org/wiki/STL_(file_format))并将其渲染为具有固定光照的单一定义颜色。 模型本身将旋转;照明和颜色将被固定。
听起来很简单,但我无法找到一种方法来将我从大量简单的三角形/立方体示例中学到的东西应用于每张脸上的单独颜色,并将其应用于具有35k张脸的模型(而不是真正的脸数事项)。
我借来[加载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
渲染的shader代码只计算使用面法线一种颜色,这将导致一个可爱的彩虹效果有被点燃的错觉:
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的图像/轮廓(没有阴影)。 我相当肯定这需要添加光照,也许这增加了一小部分代码,但我明显是这样的poseur,我甚至不能确定它是一个复杂的方式来做到这一点。
我已经搜遍了所有Google的例子,我想做什么;我认为这会很容易找到,但我一直无法找到一个。我只是寻找一个简单的经典“茶壶”例子,其中的颜色可以定义。 任何人都愿意向我展示如何简单地编写代码,或者我可以在哪里找到我想要做的一个简单示例?
谢谢!
Pv
谢谢@mikkokoo!我会试一试。在此期间,我一直在使用Rajawali3d库获得好运,并计划对最简单的原始OpenGLES2代码进行反向工程,以便渲染点亮的对象并在此处回答我的问题。我觉得很奇怪,我无法轻松找到这样一个简单的例子。 – swooby