参考書読みながらツギハギで少しずつプログラミングして、ようやく、OpenGLで物体に光を当てて表示できるようになりました。

Androidでルービックキューブを作るにしても、せっかくOpenGLを使うんだからライティング位は将来必要だろうと思っているので。
ライティングがないとのっぺりした単色で見た目にもつまらないです。

しかし、なんでもないポリゴンに光を反映させるのに二日掛かってしまいました。
参考書、ネットであちこち参考にしながら作っていたのですがなかなかうまく表示されません。
OpenGLというのは単に光源を設定しても物体に反映されないのですね
そこで、必要になるのが「法線ベクトル※」という値なんですが、これをポリゴンに設定しないと表示がおかしかったり、表示すらしないという状況に陥ってしまいます。
※OpenGLでは「Normal(ノーマル)」と呼ぶ

法線ベクトルを簡単にいうと、「面に対して垂直なベクトル」のことです。
OpenGLでは、これをいちいち計算してポリゴンを形成する各頂点毎に設定するみたいです。

この辺の理解とOpenGL特有の関数の多さで、表示までに時間が掛かってしまいました

ちなみに、OpenGLにはフォグ(霧)という機能もあります。これも、より見た目をリアルにするには必要なのかな!?まあ処理速度と見た目の効果次第では却下になるかもしれませんが。

写真は、光を当てた立方体です。静止画ではちょっとしょぼいですが、くるくる回すと面が光に反射してきらきらしていい感じです。
$Cocoaを飲む-ライティング