(57)【要約】【課題】  省エネのためのＬＯＤ値計算方法とこれを利用した３次元レンダリングシステムを提供する。【解決手段】  ポリゴンを構成するフラグメントのうち、所定のポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算し、該ＬＯＤ値から頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間するＬＯＤ値計算方法とこれを利用した３次元レンダリングシステムである。これにより、ＬＯＤ値計算過程での演算量を大幅減少させ、その結果として、３次元レンダリングシステム全体の電力消耗を減少させることができる。【選択図】      図３
2008059582.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ（Ｌｅｖｅｌ  Ｏｆ  Ｄｅｔａｉｌ）値を計算する段階と、
（ｂ）前記計算されたＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する段階と、を含むことを特徴とするＬＯＤ値計算方法。
【請求項２】
前記（ｂ）段階は、前記頂点に相当するフラグメントそれぞれのＬＯＤ値の変化度を計算し、前記計算されたＬＯＤ値の変化度を利用して、前記フラグメントそれぞれのＬＯＤ値を補間することを特徴とする請求項１に記載のＬＯＤ値計算方法。
【請求項３】
前記（ｂ）段階は、前記所定のポリゴンの単位で分割された物体をレンダリングするための情報に相当する、前記フラグメントそれぞれのパラメータ値を補間する技法と同じ技法で前記ＬＯＤ値を補間することを特徴とする請求項１に記載のＬＯＤ値計算方法。
【請求項４】
前記パラメータ値は、前記所定のポリゴンを構成するフラグメントそれぞれの座標値、カラー値、及び前記各フラグメントにマッピングされるテクスチャの座標値を含むことを特徴とする請求項３に記載のＬＯＤ値計算方法。
【請求項５】
前記（ｂ）段階は、
（ｂ１）前記頂点に相当するフラグメントそれぞれのＬＯＤ値から前記ポリゴンのｘ軸上のＬＯＤ値変化度とｙ軸上のＬＯＤ値変化度とを計算する段階と、
（ｂ２）前記計算されたｘ軸上のＬＯＤ値変化度とｙ軸上のＬＯＤ値変化度とを利用して、前記ポリゴンのエッジに相当するフラグメントそれぞれのＬＯＤ値を計算する段階と、
（ｂ３）前記計算されたエッジそれぞれに相当するフラグメントのＬＯＤ値を利用して、前記ポリゴンを構成する各スパンに対して前記各スパンを構成するフラグメントそれぞれのＬＯＤ値を計算する段階と、を含むことを特徴とする請求項１に記載のＬＯＤ値計算方法。
【請求項６】
所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算する段階と、
前記計算されたＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する段階と、を含むことを特徴とするＬＯＤ値計算方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項７】
所定のポリゴンを構成するフラグメントのうち、前記所定のポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算するポリゴン処理部と、
前記ポリゴン処理部によって計算されたＬＯＤ値を利用して、前記ポリゴンのエッジに相当するフラグメントそれぞれのＬＯＤ値を計算するエッジ処理部と、
前記エッジ処理部によって計算されたＬＯＤ値を利用して、前記ポリゴンを構成する各スパンに対して前記各スパンを構成するフラグメントそれぞれのＬＯＤ値を計算するスパン処理部と、を備えることを特徴とするＬＯＤ値計算装置。
【請求項８】
前記ポリゴン処理部は、前記エッジに相当するフラグメントそれぞれのパラメータ値及びＬＯＤ値を計算し、
前記スパン処理部は、前記各スパンを構成するフラグメントそれぞれのパラメータ値及びＬＯＤ値を計算することを特徴とする請求項７に記載のＬＯＤ値計算装置。
【請求項９】
前記パラメータ値は、前記所定のポリゴンを構成するフラグメントそれぞれの座標値、カラー値、及び前記各フラグメントにマッピングされるテクスチャの座標値を含むことを特徴とする請求項８に記載のＬＯＤ値計算装置。
【請求項１０】
（ａ）所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する段階と、
（ｂ）前記補間されたＬＯＤ値に基づいて、さまざまな解像度のテクスチャのうちいずれか一つを前記フラグメントそれぞれにマッピングする段階と、を含むことを特徴とするレンダリング方法。
【請求項１１】
前記（ａ）段階は、前記頂点に相当するフラグメントそれぞれのパラメータ値及びＬＯＤ値から、前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのパラメータ値及びＬＯＤ値を補間することを特徴とする請求項１０に記載のレンダリング方法。
【請求項１２】
前記パラメータ値は、前記所定のポリゴンを構成するフラグメントそれぞれの座標値、カラー値、及び前記各フラグメントにマッピングされるテクスチャの座標値を含むことを特徴とする請求項１１に記載のレンダリング方法。
【請求項１３】
所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する段階と、
前記補間されたＬＯＤ値に基づいて、さまざまな解像度のテクスチャのうちいずれか一つを前記フラグメントそれぞれにマッピングする段階と、を含むことを特徴とするレンダリング方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項１４】
所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間するスパン変換部と、
前記スパン変換部によって補間されたＬＯＤ値に基づいて、さまざまな解像度のテクスチャのうちいずれか一つを前記フラグメントそれぞれにマッピングするテクスチャマッピング部と、を備えることを特徴とするレンダリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある物体（ｏｂｊｅｃｔ）を３次元にレンダリングするシステムに係り、特に、３次元レンダリング過程のうち、テクスチャマッピングに使われるＬＯＤ（Ｌｅｖｅｌ  Ｏｆ  Ｄｅｔａｉｌ）値を計算する方法及び装置に関する。
【背景技術】
【０００２】
ある物体に対する３次元グラフィック処理過程のうち、３次元レンダリング過程は、該物体に対する幾何学的処理段階、該物体を構成する単位に相当する所定のポリゴンを、光源モデルによってその内部をモニターのスクリーンのピクセルに対応するフラグメント単位でフラグメントそれぞれの値を決定するスパン変換段階、予め保存された２次元イメージに相当するテクスチャを該物体に貼り付けるテクスチャマッピング段階、及び以上の過程で決定された値をブレンディングすることでピクセルそれぞれの最終値を決定するカラーブレンディング段階で構成される。
【０００３】
図１は、一般的なポリゴンに相当する三角形を構成するそれぞれのフラグメントを示す図である。
【０００４】
物体に対する幾何学的処理過程を通じて物体が所定のポリゴン、例えば、三角形に分割される。図１には、物体を構成する三角形のうちいずれか一つが示されている。特に、三角形を構成する一つの単位をフラグメントと呼び、これは、モニターのスクリーン上のピクセルに対応する概念である。３次元レンダリング過程におけるフラグメントの値が直ぐピクセル値ではないが、３次元レンダリング過程を通じて、フラグメントの値は継続的に修正され、最終的にフラグメントの値がピクセルの値となる。また、スパンは、三角形の両エッジに相当するフラグメントそれぞれを終端点とするフラグメントの横集合を意味し、前記のスパン変換段階での処理単位である。
【０００５】
ミップマップ（Ｍｉｐｍａｐ）方式によるテクスチャマッピング段階では、一般的に、三角形を構成するあらゆるフラグメントそれぞれに対して物体表現の詳細程度を示すＬＯＤ値を次の式（１）を利用して計算し、該ＬＯＤ値によってさまざまな解像度のテクスチャのうちいずれか一つをフラグメントそれぞれにマッピングする。ＬＯＤは、次のように一般的にラムダ（λ）で表記される。
【０００６】
【数１】
2008059582.tif 000003
前記された式（１）に示すように、従来のＬＯＤ値計算技法は、多数の乗算演算及び除算演算を必要とし、これにより、ＬＯＤ値の計算過程で多くの電力が消費されるという問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする技術的課題は、ポリゴンを構成するフラグメント単位でＬＯＤ値を計算する方式の３次元レンダリングシステムによるＬＯＤ値計算過程での演算量を減少させることにより、３次元レンダリングシステム全体の電力消費を減少させる方法及び装置を提供するところにある。また、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供するところにある。
【０００８】
本発明が解決しようとする技術的課題は、前記のような技術的課題に限定されず、他の技術的課題が存在しうる。これは、当業者であれば、下記の記載から明確に理解しているはずである。
【課題を解決するための手段】
【０００９】
前記技術的課題を解決するための本発明によるＬＯＤ値計算方法は、所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算する段階と、前記計算されたＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する段階とを含む。
【００１０】
前記他の技術的課題を解決するために、本発明は、前記のＬＯＤ値計算方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
【００１１】
前記さらに他の技術的課題を解決するための本発明によるＬＯＤ値計算装置は、所定のポリゴンを構成するフラグメントのうち、前記所定のポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算するポリゴン処理部と、前記ポリゴン処理部によって計算されたＬＯＤ値を利用して、前記ポリゴンのエッジに相当するフラグメントそれぞれのＬＯＤ値を計算するエッジ処理部と、前記エッジ処理部によって計算されたＬＯＤ値を利用して、前記ポリゴンを構成する各スパンに対して前記各スパンを構成するフラグメントそれぞれのＬＯＤ値を計算するスパン処理部とを備える。
【００１２】
前記さらに他の技術的課題を解決するための本発明によるレンダリング方法は、所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する段階と、前記補間されたＬＯＤ値に基づいて、さまざまな解像度のテクスチャのうちいずれか一つを前記フラグメントそれぞれにマッピングする段階とを含むことを特徴とする。
【００１３】
前記さらに他の技術的課題を解決するために、本発明は、前記のレンダリング方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
【００１４】
前記さらに他の技術的課題を解決するための本発明によるレンダリング装置は、所定のポリゴンを構成するフラグメントのうち、前記ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値から前記頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間するスパン変換部と、前記スパン変換部によって補間されたＬＯＤ値に基づいて、さまざまな解像度のテクスチャのうちいずれか一つを前記フラグメントそれぞれにマッピングするテクスチャマッピング部とを備える。
【発明の効果】
【００１５】
本発明によれば、ポリゴンの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算し、該ＬＯＤ値から残りのフラグメントそれぞれのＬＯＤ値を補間することで、ＬＯＤ値計算過程での演算量を大幅減少させることが可能であり、その結果、３次元レンダリングシステム全体の電力消耗を減少させることができる。特に、本発明によれば、既存のパラメータ値を補間する技法と同じ技法でＬＯＤ値を補間することで、ＬＯＤ値計算に必要な回路素子の追加を最小化することができる。
【発明を実施するための最良の形態】
【００１６】
以下では、図面を参照して本発明の望ましい実施形態を詳細に説明する。
【００１７】
図２は、本発明の望ましい一実施形態によるラスタライザ２の構成図である。図２を参照するに、本実施形態によるラスタライザ２は、スパン変換部２１、テクスチャマッピング部２２、アルファテスト部２３、深さテスト部２４、及びカラーブレンディング部２５から構成される。一般的に、ラスタライザ２は、モニターのスクリーン上にある物体を３次元グラフィックにレンダリングする３次元レンダリングシステムの一部であって、スクリーン上のピクセルそれぞれの値を決定する装置を意味する。
【００１８】
このラスタライザ２の処理前に物体に対する幾何学的処理が先行されなければならないが、この幾何学的処理過程を通じて物体が所定のポリゴンに分割され、このポリゴンを構成するフラグメントそれぞれのパラメータが決定される。このフラグメントそれぞれのパラメータは、所定のポリゴンの単位で分割された客体を３次元グラフィックにレンダリングするためのフラグメント単位情報であり、ポリゴンを構成するフラグメントそれぞれの深さ値（ｚ）とカラー値（ｒ、ｇ、ｂ、ａ）及びフラグメントそれぞれにマッピングされるテクスチャの座標値（ｓ、ｔ）などを含む。ここで、ｒは赤色、ｇは緑色、ｂは青色、ａは透明度を意味する。また、ｓとｔは、テクスチャの正規化された座標値を意味し、０または１である。
【００１９】
一般的に、レンダリング計算量を減らすために、さまざまな形態のポリゴンのうち最も単純な形態の三角形が主に利用される。以下では、ポリゴンを三角形と特定し、本実施形態を説明する。但し、当業者であれば、三角形以外の他の形態のポリゴンも本実施形態に適用できるということを理解できるであろう。
【００２０】
スパン変換部２１は、三角形を構成するフラグメントそれぞれのパラメータの値を決定する。さらに詳細に説明すれば、スパン変換部２１は、頂点バッファ１から三角形を構成するフラグメントのうち、三角形の三つの頂点の座標値を入力され、前記の式（１）を利用して該三角形の三つの頂点に相当するフラグメントそれぞれのパラメータ値を計算する。また、スパン変換部２１は、該パラメータ値から三角形の頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのパラメータ値を補間する。
【００２１】
特に、本実施形態によれば、スパン変換部２１は、三角形を構成するフラグメントのうち。三角形の三つの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算し、前記した既存のパラメータ値を補間する技法と同じ技法で該ＬＯＤ値から三角形の頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのＬＯＤ値を補間する。すなわち、スパン変換部２１は、前記した既存のパラメータ値を補間する技法によって三角形の三つの頂点に相当するフラグメントそれぞれのＬＯＤ値の変化度を計算し、該ＬＯＤ値の変化度を利用してフラグメントそれぞれのＬＯＤ値を補間する。このように、スパン変換部２１は、従来のスパン変換過程とは違って、既存のパラメータと共にＬＯＤ値の計算も行う。従来にはＬＯＤ値計算をテクスチャマッピング段階で行った。
【００２２】
図３は、図２に示すスパン変換部２１の詳細構成図である。図３を参照するに、図２に示すスパン変換部２１は、ポリゴン処理部３１、エッジ処理部３２、及びスパン処理部３３から構成される。
【００２３】
ポリゴン処理部３１は、三角形の三つのエッジのうち、ｙ座標値が最小である頂点を初めとする両エッジに対して、三角形の三つの頂点に相当するフラグメントそれぞれのパラメータ値から三角形のｘ軸上のパラメータ値の変化度と、ｙ軸上のパラメータ値の変化度とを計算する。特に、本実施形態によれば、ポリゴン処理部３１は、このような既存のパラメータに対するポリゴン処理技法と同じ技法でフラグメントそれぞれのＬＯＤ値を計算する。すなわち、ポリゴン処理部３１は、三角形を構成するフラグメントのうち、三角形の三つの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算し、三角形の三エッジのうち、ｙ座標の値が最小である頂点を初めとする両エッジに対して、三角形の三つの頂点に相当するフラグメントそれぞれのＬＯＤ値から三角形のｘ軸上のＬＯＤ値の変化度と、ｙ軸上のＬＯＤ値の変化度とを計算する。
【００２４】
例えば、ポリゴン処理部３１は、次のような過程を通じて、三角形のｘ軸上のＬＯＤ値の変化度とｙ軸上のＬＯＤ値の変化度とを計算できる。
【００２５】
Ｅｍａｊ＿ｄλ＝Ｖｍａｘ−Ｖｍｉｎ；
Ｅｂｏｔ＿ｄλ＝Ｖｍｉｄ−Ｖｍｉｎ；
ｄλ／ｄｘ＝（Ｅｍａｊ＿ｄλ＊Ｅｂｏｔ＿ｄｙ−Ｅｍａｊ＿ｄｙ＊Ｅｂｏｔ＿ｄλ）／
（Ｅｍａｊ＿ｄｘ＊Ｅｂｏｔ＿ｄｙ−Ｅｍａｊ＿ｄｙ＊Ｅｂｏｔ＿ｄｘ）；
ｄλ／ｄｙ＝（Ｅｍａｊ＿ｄｘ＊Ｅｂｏｔ＿ｄλ−Ｅｍａｊ＿ｄλ＊Ｅｂｏｔ＿ｄｘ）／
（Ｅｍａｊ＿ｄｘ＊Ｅｂｏｔ＿ｄｙ−Ｅｍａｊ＿ｄｙ＊Ｅｂｏｔ＿ｄｘ）；
前記の例からポリゴン処理過程の（＋，−，＊，／）演算回数は、それぞれ（０，４，４，０）であることが分かる。ここで、“Ｖｍａｘ”は、ｙ座標値が最大である頂点のＬＯＤ値であり、“Ｖｍｉｄ”は、ｙ座標値が中間である頂点のＬＯＤ値であり、“Ｖｍｉｎ”は、ｙ座標値が最小である頂点のＬＯＤ値である。また、“ｄλ／ｄｘ”は、三角形のｘ軸上のＬＯＤ値の変化度であり、“ｄλ／ｄｙ”は、三角形のｙ軸上のＬＯＤ値の変化度である。
【００２６】
エッジ処理部３２は、三角形を構成する各スパンに対してポリゴン処理部３１により計算されたｘ軸上のパラメータ値の変化度とｙ軸上のパラメータ値の変化度とを利用して、三角形の両エッジに相当するフラグメントそれぞれのパラメータ値を計算し、各スパンを構成するフラグメント間のパラメータ値差を計算する。ここで、スパンは、三角形の両エッジに相当するフラグメントそれぞれを終端点とするフラグメントの横集合を意味する。
【００２７】
特に、本実施形態によれば、エッジ処理部３２は、このような既存のパラメータに対するエッジ処理技法と同じ技法で、三角形の両エッジに相当するフラグメントそれぞれのＬＯＤ値を計算し、各スパンを構成するフラグメント間のＬＯＤ値差を計算する。すなわち、エッジ処理部３２は、三角形を構成する各スパンに対して、ポリゴン処理部３１によって計算されたｘ軸上のＬＯＤ値変化度とｙ軸上のＬＯＤ値変化度とを利用して、ポリゴンのエッジに相当するフラグメントそれぞれのＬＯＤ値を計算し、各スパンを構成するフラグメント間のＬＯＤ値差を計算する。
【００２８】
例えば、エッジ処理部３２は、次のような過程を通じて、三角形のエッジに相当するフラグメントそれぞれのＬＯＤ値を計算し、各スパンを構成するフラグメント間のＬＯＤ値差を計算する。
【００２９】
三角形を構成する各スパンに対して
{Ｃｏｍｐａｒｅ；
ｆλ＝λ０＋ａｄｊｘ＊ｄλ／ｄｘ＋ａｄｊｙ＊ｄλ／ｄｙ；
ｆｄλＯｕｔｅｒ＝ｄλ／ｄｙ＋ｆｄｘＯｕｔｅｒ＊ｄλ／ｄｘ；
}
ｆｄλＩｎｎｅｒ＝ｆｄλＯｕｔｅｒ＋ｄλ／ｄｘ；
前記の例からエッジ処理過程の（＋，−，＊，／）演算回数は、それぞれスパン数＊{（３，０，３，０）＋Ｃｏｍｐａｒｅ}＋（１，０，０，０）であることが分かる。ここで、“Ｃｏｍｐａｒｅ”は、三角形の三つのエッジうち、どのエッジを選択するかを示す比較文であり、これによりＶｍｉｎ、Ｖｍｉｄ、Ｖｍａｘのうちいずれか一つが、フラグメントそれぞれのＬＯＤ値補間の開始頂点として選択される。また、“λ０”は、前記“Ｃｏｍｐａｒｅ”過程によって選択された開始頂点のＬＯＤ値を意味する。また、“ａｄｊｘ”は、ｘ軸に対する開始頂点に相当するフラグメントの中心座標値と開始頂点の実際座標値との差を意味する。また、“ａｄｊｙ”は、ｙ軸に対する開始頂点に相当するフラグメントの中心座標値と開始頂点の実際座標値との差を意味する。したがって、“ｆλ”は、開始頂点に相当するフラグメント中心のＬＯＤ値となる。これは、開始頂点の実際座標が必ずしもフラグメントの正中央に位置することではないという点を考慮して、別途に開始頂点に相当するフラグメント中心のＬＯＤ値を計算したのである。
【００３０】
また、“ｆｄｘＯｕｔｅｒ”は、現在計算中のエッジの変化度ｄｘ／ｄｙを意味する。したがって、“ｆｄλＯｕｔｅｒ”は、２＊ｄλ／ｄｙとなり、“ｆｄλＩｎｎｅｒ”は、２＊ｄλ／ｄｙ＋ｄλ／ｄｘとなる。この二値は、現在計算中のスパンに対してＬＯＤ計算を終了し、他のスパンに対してＬＯＤ値計算を始めようとする時、下記のスパン処理過程で利用される。
【００３１】
スパン処理部３３は、三角形を構成する各スパンに対してエッジ処理部３２によって計算されたエッジに相当するフラグメントそれぞれのパラメータ値、及び各スパンを構成するフラグメント間のパラメータ値差を利用して、各スパンを構成するフラグメントそれぞれのパラメータ値を計算する。特に、本実施形態によれば、スパン処理部３３は、このような既存のパラメータに対するスパン処理技法と同じ技法で、各スパンを構成するフラグメントそれぞれのＬＯＤ値を計算する。すなわち、スパン処理部３３は、三角形を構成する各スパンに対してエッジ処理部３２によって計算されたエッジに相当するフラグメントそれぞれのＬＯＤ値、及び各スパンを構成するフラグメント間のＬＯＤ値差を利用して、各スパンを構成するフラグメントそれぞれのＬＯＤ値を計算する。
【００３２】
例えば、スパン処理部３３は、次のような二つの過程を通じて、各スパンを構成するフラグメントそれぞれのＬＯＤ値を計算する。１番目の過程は、現在スパンから次のスパンにＬＯＤ値計算が移動する時に行われる過程を意味し、２番目の過程は、三角形を構成する各スパンに対して行われる過程を意味する。
【００３３】
現在スパンから次のスパンにＬＯＤ値計算が移動する時
{ｆｆλｅｎｄ＝ｆｄλ＋（Ｒｉｇｈｔ−Ｌｅｆｔ−１）＊ｄλ／ｄｘ；
ｆλ＝ｆλ＋ｆｄλＯｕｔｅｒまたはｆλ＝ｆλ＋ｆｄλＩｎｎｅｒ；
ｆλ＝ｆλ−ｆｆλｅｎｄ；
}
三角形を構成する各スパンに対して
{ｆλ＝ｆλ＋ｄλ／ｄｘ}
前記の例からスパン処理過程の（＋，−，＊，／）演算回数は、それぞれスパン数＊（３，０，１，０）＋フラグメント数＊（１，０，０，０）であることが分かる。１番目の過程において、“Ｒｉｇｈｔ−Ｌｅｆｔ”は、現在スパンを構成するフラグメントの総数を意味する。したがって、ｆｆλｅｎｄは、現在スパンを構成するフラグメントのうち最後のフラグメントのＬＯＤ値となる。“ｆλ”に“ｆｄλＯｕｔｅｒ”及び“ｆｄλＩｎｎｅｒ”のうちどれを加算するかは、“ｆｄλＯｕｔｅｒ”及び“ｆｄλＩｎｎｅｒ”のうちどれが大きいかによって決定される。すなわち、この二値からｘ軸上のＬＯＤ値の変化度及びｙ軸上のＬＯＤ値の変化度のうち、いずれが大きいかが分かり、ｘ軸上のＬＯＤ値の変化度がより大きければ、“ｆｄλＯｕｔｅｒ”を加算し、ｙ軸上のＬＯＤ値の変化度がより大きければ、“ｆｄλＩｎｎｅｒ”を加算する。このような選択的加算過程を通じて、次のスパンのエッジに相当するフラグメントのＬＯＤ値“ｆλ”が計算される。“ｆλ＝ｆλ−ｆｆλｅｎｄ”過程は、“ｆλ”値がオーバーフローである時、すなわち、ＬＯＤ値に割り当てられた所定ビット量を超える時に行われる過程である。
【００３４】
２番目の過程は、ｙ値を１ずつ増加させながらｆλに単位変化量に相当する“ｄλ／ｄｘ”を加算することによって、いずれか一つのスパンを構成するフラグメントそれぞれのＬＯＤ値を計算する過程を意味する。本実施形態が属する技術分野で通常の知識を持つ者であれば、前記の内容に基づいてｘ値を１ずつ増加させながら、ｆλに単位変化量に相当する“ｄλ／ｄｙ”を加算することによって、フラグメントそれぞれのＬＯＤ値を計算する方式を容易に具現できるということが理解できるであろう。
【００３５】
テクスチャマッピング部２２は、ミップマップ（Ｍｉｐｍａｐ）方式により、スパン変換部２１によって計算または補間されたフラグメントそれぞれのＬＯＤ値によって、さまざまな解像度のテクスチャのうちいずれか一つをフラグメントそれぞれにマッピングする。さらに詳細に説明すれば、テクスチャマッピング部２２は、あるフラグメントのＬＯＤ値が高ければ、さまざまな解像度のテクスチャのうち、高解像度のテクスチャを該フラグメントにマッピングし、あるフラグメントのＬＯＤ値が低ければ、さまざまな解像度のテクスチャのうち、低解像度のテクスチャを該フラグメントにマッピングする。このようなテクスチャマッピング過程を通じて、物体の表面にテクスチャに該当するイメージが貼り付けられる。
【００３６】
アルファテスト部２３は、スパン変換部２１によって計算または補間されたフラグメントそれぞれのパラメータ値のうち、アルファ値ａを所定の基準値と比較し、この比較結果に基づいて、各フラグメントが透明であるか否かを決定する。
【００３７】
深さテスト部２４は、スパン変換部２１によって計算または補間されたフラグメントそれぞれのパラメータ値のうち、深さ値ｚが深さバッファ（図示せず）に保存された深さ値より小さな場合に、この深さ値ｚで深さバッファの値を更新する。
【００３８】
カラーブレンディング部２５は、スパン変換部２１によって計算または補間されたフラグメントそれぞれのパラメータ値と、ピクセルバッファ（図示せず）に保存されたカラー値とを混ぜることによって、フラグメントそれぞれに対応するスクリーン上のピクセルそれぞれの最終値を出力する。特に、カラーブレンディング部２５は、テクスチャマッピング部２２によってマッピングされたテクスチャ、アルファテスト部２３によって決定された透明度、及び深さテスト部２４によって更新された深さ値が反映されたピクセルそれぞれの最終値をフレームバッファ３に出力する。
【００３９】
図４は、本発明の望ましい一実施形態による３次元レンダリング方法のフローチャートである。図４を参照するに、本実施形態による３次元レンダリング方法は、図２に示すラスタライザ２で経時的に処理される段階で構成される。したがって、以下に省略された内容であっても、図２に示すラスタライザに関して前述した内容は、本実施形態による３次元レンダリング方法にも適用される。
【００４０】
４１段階において、ラスタライザ２は、頂点バッファ１から三角形を構成するフラグメントのうち、三角形の三つの頂点の座標値を入力され、前記の式（１）を利用して該三角形の三つの頂点に相当するフラグメントそれぞれのパラメータ値及びＬＯＤ値を計算する。また、４１段階において、ラスタライザ２は、該パラメータ値及びＬＯＤ値から三角形の頂点に相当するフラグメントを除外した残りのフラグメントそれぞれのパラメータ値及びＬＯＤ値を補間する。
【００４１】
４２段階において、ラスタライザ２は、ミップマップ方式により、４１段階で計算または補間されたフラグメントそれぞれのＬＯＤ値によって、さまざまな解像度のテクスチャのうちいずれか一つをフラグメントそれぞれにマッピングする。
【００４２】
４３段階において、ラスタライザ２は、４１段階で計算または補間されたフラグメントそれぞれのパラメータ値のうち、アルファ値ａを所定の基準値と比較し、この比較結果に基づいて、各フラグメントが透明であるか否かを決定する。
【００４３】
４４段階において、ラスタライザ２は、４１段階で計算または補間されたフラグメントそれぞれのパラメータ値のうち、深さ値ｚが深さバッファに保存された深さ値より小さな場合に、該深さ値ｚで深さバッファの値を更新する。
【００４４】
４５段階において、ラスタライザ２は、４１段階で計算または補間されたフラグメントそれぞれのパラメータ値と、ピクセルバッファに保存されたカラー値とを混ぜることによって、４２段階でマッピングされたテクスチャ、４３段階で決定された透明度、及び４４段階で更新された深さ値が反映されたピクセルそれぞれの最終値をフレームバッファ３に出力する。
【００４５】
図５は、本発明の望ましい一実施形態によるスパン変換方法のフローチャートである。図５を参照するに、本実施形態によるスパン変換方法は、図５に示すスパン変換方法で経時的に処理される段階で構成される。したがって、以下に省略された内容であっても、図３に示すスパン変換部２１に関して前述した内容は、本実施形態によるスパン変換方法にも適用される。
【００４６】
５１段階において、スパン変換部２１は、三角形を構成するフラグメントのうち、三角形の三つの頂点に相当するフラグメントそれぞれのＬＯＤ値を計算する。
【００４７】
５２段階において、スパン変換部２１は、三角形の三エッジのうち、ｙ座標値が最小である頂点を初めとする両エッジに対して、三角形の三つの頂点に相当するフラグメントそれぞれのパラメータ値及びＬＯＤ値から三角形のｘ軸上のパラメータ値の変化度及びＬＯＤ値の変化度、ｙ軸上のパラメータ値の変化度及びＬＯＤ値の変化度を計算する。
【００４８】
５３段階において、スパン変換部２１は、三角形を構成する各スパンに対して、５２段階で計算されたｘ軸上のパラメータ値の変化度及びＬＯＤ値の変化度、ｙ軸上のパラメータ値の変化度及びＬＯＤ値の変化度を利用して、三角形の両エッジに相当するフラグメントそれぞれのパラメータ値及びＬＯＤ値を計算し、各スパンを構成するフラグメント間のパラメータ値差及びＬＯＤ値差を計算する。
【００４９】
５４段階において、スパン変換部２１は、三角形を構成する各スパンに対して、５３段階で計算されたエッジに相当するフラグメントそれぞれのパラメータ値及びＬＯＤ値、各スパンを構成するフラグメント間のパラメータ値差及びＬＯＤ値差を利用して、各スパンを構成するフラグメントそれぞれのパラメータ値及びＬＯＤ値を計算する。
【００５０】
図６は、従来のＬＯＤ計算技法による総演算回数を示す図である。図６に示す“ｓ”と“ｔ”は、テクスチャの正規化された座標値を意味し、０または１である。また、図６に示す“ｑ”は、遠近による校正データを意味し、“ｉｎｖＱ”は、１／ｑである。また、図６に示す“ｗｉｄｔｈ”と”ｈｅｉｇｈｔ“は、テクスチャの横サイズ及び縦サイズを意味する。
【００５１】
図６を参照するに、従来のＬＯＤ値計算技法による総演算回数は、三角形を構成するフラグメント数＊{（１０，４，１２，４）、ルート２回、比較１回、ログ１回}となる。（１０，４，１２，４）は、フラグメント当たり（＋，−，＊，／）演算回数を意味する。
【００５２】
図７は、従来の他のＬＯＤ値計算技法による総演算回数を示す図である。図７を参照するに、従来のＬＯＤ値計算技法による総演算回数は、三角形を構成するフラグメント数＊{（８，４，６，４）、ＡＢＳ４回、比較３回、ログ１回}となる。（８，４，６，４）は、フラグメント当たり（＋，−，＊，／）演算回数を意味する。
【００５３】
図６に示すＬＯＤ値計算技法と図７に示すＬＯＤ値計算技法とを比較してみれば、図６に示すＬＯＤ値計算技法に比べて図７に示すＬＯＤ値計算技法の演算量が少ない。したがって、以下では、図７に示すＬＯＤ計算技法と本実施形態によるＬＯＤ値計算過程での演算量とを比較する。
【００５４】
図８は、本発明の望ましい一実施形態によるＬＯＤ値計算過程での総演算回数を示す図である。図８を参照するに、本発明の望ましい一実施形態によるＬＯＤ値計算過程での総演算回数は、前記のポリゴン処理過程、エッジ処理過程、及びスパン処理過程それぞれでの演算回数をいずれも合わせた値であり、（１３１，１６，５８，０）、ＡＢＳ１２回、比較１８回、ログ３回となる。
【００５５】
図９は、図７に示すＬＯＤ計算技法と本実施形態によるＬＯＤ値計算過程での演算量の比較表を示す図である。図９で“Ｖ”は、ポリゴンを構成する頂点の数を意味し、“Ｆ”は、ポリゴンを構成するフラグメント数を意味し、“Ｓ”は、ポリゴンを構成するスパン数を意味する。
【００５６】
図１０は、図９に示す比較表でフラグメント数を２５と仮定した場合の総演算回数を示す図である。
【００５７】
図９に示す比較表にフラグメント数“Ｆ”を２５と仮定すれば、従来のＬＯＤ値計算技法による総演算回数は、（２００，１００，１５０，１００）、比較７５回、ログ２５回、絶対値１００回となる。また、図９に示す比較表に頂点の数“Ｖ”を３と、スパン数“Ｓ”を６と、フラグメント数“Ｆ”を２５と過程すれば、本実施形態によるＬＯＤ値計算過程での総演算回数は、（８６，１２，４２，１６）、比較１５回、ログ３回、絶対値１２回となる。したがって、従来のＬＯＤ値計算技法に比べて、本実施形態によるＬＯＤ値計算過程での演算量が大幅減少することが分かる。
【００５８】
一方、前述した本発明の実施形態は、コンピュータで実行できるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用して前記プログラムを動作させる汎用デジタルコンピュータで具現できる。また、前述した本発明の実施形態で使われたデータの構造は、コンピュータで読み取り可能な記録媒体にいろいろな手段を通じて記録できる。
【００５９】
前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体（例えば、ＲＯＭ、フロッピー（登録商標）ディスク、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤなど）及びキャリアウェーブ（例えば、インターネットを通じた伝送）のような記録媒体を含む。
【００６０】
これまで本発明についてその望ましい実施形態を中心に説明した。当業者ならば本発明が本発明の本質的な特性から逸脱しない範囲で変形された形態に具現されるということを理解できる。したがって、開示された実施形態は限定的な観点ではなく説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明ではなく特許請求の範囲に現れており、それと同等な範囲内にあるあらゆる差異点は本発明に含まれていると解釈されねばならない。
【産業上の利用可能性】
【００６１】
本発明は、３次元にレンダリング関連の技術分野に好適に用いられる。
【図面の簡単な説明】
【００６２】
【図１】一般的なポリゴンに相当する三角形を構成するそれぞれのフラグメントを示す図である。
【図２】本発明の望ましい一実施形態によるラスタライザの構成図である。
【図３】図２に示すスパン変換部の詳細構成図である。
【図４】本発明の望ましい一実施形態による３次元レンダリング方法のフローチャートである。
【図５】本発明の望ましい一実施形態によるスパン変換方法のフローチャートである。
【図６】従来のＬＯＤ計算技法による総演算回数を示す図である。
【図７】従来の他のＬＯＤ値計算技法による総演算回数を示す図である。
【図８】本発明の望ましい一実施形態によるＬＯＤ値計算過程での総演算回数を示す図である。
【図９】図７に示すＬＯＤ計算技法と本実施形態によるＬＯＤ値計算過程での演算量の比較表を示す図である。
【図１０】図９に示す比較表でフラグメント数を２５と仮定した場合の総演算回数を示す図である。
【符号の説明】
【００６３】
１    頂点バッファ
２    ラスタライザ
３    フレームバッファ
２１  スパン変換部
２２  テクスチャマッピング部
２３  アルファテスト部
２４  深さテスト部
２５  カラーブレンディング部
３１  ポリゴン処理部
３２  エッジ処理部
３３  スパン処理部
【図２】
2008059582.tif 000004
【図４】
2008059582.tif 000005
【図５】
2008059582.tif 000006
【図６】
2008059582.tif 000007
【図７】
2008059582.tif 000008
【図８】
2008059582.tif 000009
【図９】
2008059582.tif 000010
【図１０】
2008059582.tif 000011
【図１】
2008059582.tif 000012
【図３】
2008059582.tif 000013