Open Source Web Development Tutorials - Dev Shed
OpenGLでの基本的なライティング
(2009/02/24公開)
SDLでゲームプログラミングを始めよう
ゲームプログラミング:グラフィック処理と入力処理
ゲームプログラミング:音をつけてみよう
ゲームプログラミング:OpenGLを使おう
はじめてのOpenGL
OpenGLによるアニメーション
OpenGLによる色の使用方法
SDLを使用したゲームのプログラミング:OpenGLでの基本的なライティング
ライティングは、没頭できるほどのリアリティーのある環境をプレーヤーに見せるためのコンポーネントの1つです。ライティングが不適切だったら、ゲームをプレイすることが困難となります。ライティングの作業をしやすくするため、OpenGLには簡素化されたAPIが搭載されています。今回の記事では、OpenGLで提供されているライティングAPIの使用法の基礎について説明します。この記事は、OpenGLとSDLを使ったゲームのプログラミングに関する連載の最終回となります。
最初のセクションでは、ライティングの理由と目的について解説します。2番目と3番目のセクションでは、ゲームで使われる基本的なライティングAPIの使用法を解説します。最後のセクションでは、前の2つのセクションで紹介した概念とAPIを使うアプリケーションの分析を行います。
OpenGLでのライティングの基本
ゲームのほかのあらゆる要素と同様に、ライティングは現実世界の照明の仕組みと深い関係があります。従って、OpenGLやゲームでのライティングの働きを理解する最初の手順は、現実世界のライティングの働きがどのようなものかを知ることです。日常生活に、どのようなライティングや照明があるのかを知る必要があります。
現実に存在するライティングは、環境光、散乱光、反射光に大きく分けられます。この分類は、光源の方向に基づいたものです。以下では、これらを詳しく説明します。
環境光
光源の方向が決定できず、光があらゆる方向から来るような照明を、環境光または環境照明と呼びます。このような照明は、環境によって光が散乱するために発生します。環境光の例としては、太陽光線や部屋の天井の明かりなどがあります。
部屋の背景照明も、大部分は環境光です。これは、光が目に届くまでに多くの表面で反射するため、あらゆる方向から来るように見えるのが理由です。環境光の主な特徴は、光が表面に当たったとき、あらゆる方向に等しく散乱することです。
散乱光
光が特定の方向から来る場合、散乱照明となります。この場合、光は特定の方向から来るため、表面に垂直に当たるとその表面は明るくなります。それに対して、表面に水平に近い方向でかすめた場合、照明は暗くなります。しかし、光が表面に当たった後では、すべての方向に等しく散乱します。このため、散乱光はどの方角から見ても明るく見えます。
反射光
光が特定の方向から来て、表面に当たり、特定の方向に反射される場合、このような光や照明を反射光または反射照明と呼びます。言い換えると、滑らかな材質の表面から反射する光が反射光です。オブジェクトの光沢の度合いが、反射に影響します。反射光について重要な点の1つは、入射の角度が反射の角度に等しいことです。
ライティングの種類について解説したので、次にOpenGLで基本的なライティングを実装するために必要な手順について説明します。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








