JP6271107B1 - テクスチャマッピング装置およびテクスチャマッピングプログラム - Google Patents
テクスチャマッピング装置およびテクスチャマッピングプログラム Download PDFInfo
- Publication number
- JP6271107B1 JP6271107B1 JP2017555736A JP2017555736A JP6271107B1 JP 6271107 B1 JP6271107 B1 JP 6271107B1 JP 2017555736 A JP2017555736 A JP 2017555736A JP 2017555736 A JP2017555736 A JP 2017555736A JP 6271107 B1 JP6271107 B1 JP 6271107B1
- Authority
- JP
- Japan
- Prior art keywords
- texture
- atlas
- information
- image
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013507 mapping Methods 0.000 title claims description 145
- 238000000034 method Methods 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 238000012856 packing Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
Description
また、描画処理は段数が多いパイプラインで実行されることが多いが、テクスチャアトラスを破棄して新たなテクスチャアトラスを生成する際に、パイプラインを止める必要がある。そのため、描画速度が低下してしまう。
1つ以上のテクスチャ画像であるテクスチャ画像群が記憶される第1の記憶部と、
前記テクスチャ画像群からコピーされた1つ以上のテクスチャ画像が配置された第1のテクスチャアトラスと、新たに生成される第2のテクスチャアトラスとが記憶される第2の記憶部と、
前記第1のテクスチャアトラスに配置された少なくともいずれかのテクスチャ画像を、前記第1のテクスチャアトラスから前記第2のテクスチャアトラスにコピーするテクスチャコピー部とを備える。
その結果、第1の記憶部内のテクスチャ画像群から第2の記憶部内の第2のテクスチャアトラスにコピーされるテクスチャ画像が少なくなる。
したがって、記憶部間で行われるテクスチャ画像のコピーが減るため、描画速度の低下を抑えることができる。
テクスチャマッピング装置100について、図1から図14に基づいて説明する。
図1に基づいて、テクスチャマッピング装置100の構成について説明する。
テクスチャマッピング装置100は、第1のプロセッサ901と第1のメモリ902と補助記憶装置903と第2のプロセッサ911と第2のメモリ912とディスプレイ908いったハードウェアを備えるコンピュータである。
第1のプロセッサ901は、信号線を介して第1のメモリ902と補助記憶装置903と第2のプロセッサ911と接続されている。
第2のプロセッサ911は、信号線を介して第1のプロセッサ901と第2のメモリ912とディスプレイ908と接続されている。
第1のメモリ902および第2のメモリ912は揮発性の記憶装置である。具体的には、第1のメモリ902はメインメモリであり、第2のメモリ912はVRAM(Video RAM)である。RAMは、Random Access Memoryの略称である。
補助記憶装置903は不揮発性の記憶装置である。具体的には、補助記憶装置903は、ROM、HDDまたはフラッシュメモリである。ROMはRead Only Memoryの略称であり、HDDはHard Disk Driveの略称である。
ディスプレイ908は、データを表示する表示装置である。具体的には、ディスプレイ908は液晶ディスプレイである。
さらに、補助記憶装置903にはOS(Operating System)が記憶されている。OSの少なくとも一部は、第1のメモリ902にロードされて、第1のプロセッサ901によって実行される。
つまり、第1のプロセッサ901は、OSを実行しながら、「部」の機能を実現するプログラムを実行する。
「部」の機能を実現するプログラムを実行して得られるデータは、メモリ(902、912)、補助記憶装置903、プロセッサ(901、911)内のレジスタまたはプロセッサ(901、911)内のキャッシュメモリといった記憶装置に記憶される。これらの記憶装置は、データを記憶する記憶部として機能する。第1のメモリ902は第1の記憶部191として機能し、第2のメモリ912は第2の記憶部192として機能する。
具体的には、第1のメモリ902には、テクスチャ画像群130、配置情報テーブル140およびマッピング情報データ150等が記憶される。また、第2のメモリ912には、ポリゴン画像160およびテクスチャアトラス170等が記憶される。第1のメモリ902および第2のメモリ912に記憶されるデータの内容については後述する。
「部」は「処理」または「工程」に読み替えてもよい。「部」の機能はファームウェアで実現してもよい。
「部」の機能を実現するプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体に記憶することができる。
テクスチャマッピング装置100の動作はテクスチャマッピング方法に相当する。また、テクスチャマッピング方法の手順はテクスチャマッピングプログラムの手順に相当する。
ステップS101において、アプリケーション部110は、追加画像群またはマッピング情報データ150を出力する。
ポリゴン画像160は、テクスチャ132が描画されるポリゴン161が含まれる画像であり、表示部193によって表示される。
テクスチャ画像131は、1つ以上のテクスチャが含まれる画像である。
マッピング情報151は、ポリゴン情報152と、テクスチャ画像識別子153と、テクスチャ情報154とを含む。
ポリゴン情報152は、ポリゴン画像160のうちの描画の対象となるポリゴン161が位置する部分を特定する情報である。
テクスチャ画像識別子153は、描画の対象となるテクスチャ132が含まれるテクスチャ画像131を識別する識別子である。
テクスチャ情報154は、テクスチャ画像識別子153で識別されるテクスチャ画像131のうちの描画の対象となるテクスチャ132が含まれる部分を特定する情報である。
追加画像群が受け付けられた場合、第1の記憶部191は追加画像群をテクスチャ画像群130に加えて、処理はステップS110に進む。
マッピング情報データ150が受け付けられた場合、第1の記憶部191はマッピング情報データ150を記憶し、処理はステップS120に進む。
ステップS110において、テクスチャアトラス生成部112は、受け付けられた追加画像群を、第1のテクスチャアトラス170に配置する。
第1のテクスチャアトラス170は、使用中のテクスチャアトラス170であり、1つ以上のテクスチャ画像131が配置されたテクスチャアトラス170である。
テクスチャアトラス生成処理(S110)の詳細については後述する。
ステップS120において、描画部121は、受け付けられたマッピング情報データ150を用いて、ポリゴン画像160内の描画の対象となるポリゴン161に、描画の対象となるテクスチャ132を描画する。
テクスチャマッピング処理(S120)の詳細については後述する。
ステップS111において、テクスチャアトラス生成部112は、第1のテクスチャアトラス170に、必要な空き領域があるかを判定する。必要な空き領域は、受け付けられた追加画像群を配置するために必要な空き領域である。受け付けられた追加画像群は、ステップS101で受け付けられた追加画像群である。
まず、テクスチャアトラス生成部112は、第1の配置情報テーブル140を用いて、配置個数を数える。第1の配置情報テーブル140は、第1のテクスチャアトラス170に対応する配置情報テーブル140である。配置個数は、第1のテクスチャアトラス170に配置されたテクスチャ画像131の個数である。配置情報テーブル140の内容については後述する。
次に、テクスチャアトラス生成部112は、最大個数と配置個数とを用いて、空き個数を算出する。空き個数は、最大個数から配置個数を引いた個数である。最大個数は、空のテクスチャアトラス170に配置することが可能なテクスチャ画像131の個数である。
そして、テクスチャアトラス生成部112は、追加画像数を空き個数と比較する。追加画像数は、受け付けられた追加画像群に含まれるテクスチャ画像131の個数である。
テクスチャ画像131の個数が空き個数より多い場合、必要な空き領域はない。
必要な空き領域がない場合、処理はステップS130に進む。
ステップS130において、テクスチャコピー部119は、第2のテクスチャアトラス170を生成し、第1のテクスチャアトラス170内のテクスチャ画像131を第2のテクスチャアトラス170にコピーする。
第2のテクスチャアトラス170は、新たなテクスチャアトラス170である。
第1のテクスチャアトラス170内のテクスチャ画像131が第2のテクスチャアトラス170にコピーされた後、第1のテクスチャアトラス170が削除され、第2のテクスチャアトラス170が第1のテクスチャアトラス170として使用される。
テクスチャコピー処理(S130)の詳細については後述する。
この判定は、第1の配置情報テーブル140を用いて行われる。
第1の配置情報テーブル140は、第1のテクスチャアトラス170に配置されたテクスチャ画像131毎に、テクスチャ画像131が配置された部分を管理するためのテーブルである。
第1の配置情報テーブル140は、第1のテクスチャアトラス170に配置されたテクスチャ画像131毎の配置情報141を含む。
配置情報141は、テクスチャ画像識別子と、テクスチャアトラス識別子と、範囲情報とを含む。
テクスチャ画像識別子は、テクスチャ画像131を識別する。
テクスチャアトラス識別子は、第1のテクスチャアトラス170を識別する。
範囲情報は、テクスチャ画像131が配置された部分を特定する情報である。具体的には、範囲情報は、テクスチャ画像131の左上の頂点が位置する箇所の座標値(U,V)と、テクスチャ画像131の幅(W)と、テクスチャ画像131の高さ(H)とを含む。
第1のテクスチャアトラス170は「T100」という識別子で識別される。第1のテクスチャアトラス170の大きさは40×40ピクセルである。
第1のテクスチャアトラス170には、「T0」という識別子で識別されるテクスチャ画像131と、「T1」という識別子で識別されるテクスチャ画像131と、「T2」という識別子で識別されるテクスチャ画像131とが配置されている。各々のテクスチャ画像131の大きさは10×10ピクセルである。
具体的には、テクスチャアトラス生成部112は、以下のように判定を行う。
テクスチャアトラス生成部112は、選択されたテクスチャ画像131の識別子と同じテクスチャ画像識別子が、第1の配置情報テーブル140に登録されているかを判定する。テクスチャ画像131の識別子はテクスチャ画像131に付加されているものとする。
当該テクスチャ画像識別子が第1の配置情報テーブル140に登録されている場合、選択されたテクスチャ画像131は、第1のテクスチャアトラス170に配置済みである。
選択されたテクスチャ画像131が第1のテクスチャアトラス170に配置済みでない場合、処理はステップS114に進む。
まず、テクスチャアトラス生成部112は、第1の配置情報テーブル140を参照して、第1のテクスチャアトラス170の空き領域から、配置範囲を決定する。決定される配置範囲は、選択されたテクスチャ画像131が配置される部分である。配置範囲は、2次元のビンパッキング問題を解くためのアルゴリズムによって決定することができる。
そして、テクスチャアトラス生成部112は、選択されたテクスチャ画像131と範囲情報とを、描画部121に受け渡す。受け渡される範囲情報は、決定された配置範囲を示す情報である。
その後、描画部121は、第1のテクスチャアトラス170のうちの受け渡された範囲情報が示す部分に、受け渡されたテクスチャ画像131を描画する。
これにより、選択されたテクスチャ画像131が、第1のテクスチャアトラス170に配置される。
まず、テクスチャアトラス生成部112は、テクスチャ画像識別子と、テクスチャアトラス識別子と、範囲情報とを含んだ配置情報141を生成する。
テクスチャ画像識別子は、選択されたテクスチャ画像131の識別子である。
テクスチャアトラス識別子は、第1のテクスチャアトラス170の識別子である。
範囲情報は、描画部121に受け渡された範囲情報である。
そして、テクスチャアトラス生成部112は、生成された配置情報141を、第1の配置情報テーブル140に追加する。
未選択のテクスチャ画像131がある場合、処理はステップS112に戻る。
未選択のテクスチャ画像131がない場合、テクスチャアトラス生成処理(S110)は終了する。
ステップS121において、情報変換部113は、第1のマッピング情報データ150から、未選択の第1のマッピング情報151を1つ選択する。
第1のマッピング情報データ150は、ステップS101で受け付けられたマッピング情報データ150である。
第1のマッピング情報151は、第1のマッピング情報データ150に含まれるマッピング情報151である。
第1のマッピング情報データ150は、1つ以上のマッピング情報151を含む。
第1のマッピング情報151は、ポリゴン情報152と、テクスチャ画像識別子153と、テクスチャ情報154とを含む。
ポリゴン情報152はポリゴン識別子とポリゴン座標とを含み、テクスチャ情報154はテクスチャ座標値を含む。
ポリゴン識別子は、ポリゴン161を識別する。
ポリゴン座標値は、ポリゴン161が有する頂点毎の座標値である。ポリゴン161の形状が三角形である場合、ポリゴン座標値は3組の座標値である。
テクスチャ画像識別子153は、テクスチャ画像131を識別する。
テクスチャ座標値は、テクスチャ132が有する頂点毎の座標値である。テクスチャ132の形状が三角形である場合、テクスチャ座標値は3組の座標値である。
テクスチャ画像131は、1つ以上のテクスチャ132を含む。具体的には、四角形のテクスチャ画像131が、三角形のテクスチャ132を2つ含む。
図8において、「T0」のテクスチャ画像131と、「T1」のテクスチャ画像131と、「T2」のテクスチャ画像131とは、それぞれ、四角形のテクスチャ画像131である。各々のテクスチャ画像131は、三角形のテクスチャ132を2つ含んでいる。
ステップS122において、情報変換部113は、選択された第1のマッピング情報151に対応するテクスチャ画像131が、第1のテクスチャアトラス170に配置済みであるかを判定する。選択された第1のマッピング情報151に対応するテクスチャ画像131は、選択された第1のマッピング情報151に含まれるテクスチャ画像識別子153で識別されるテクスチャ画像131である。
具体的には、情報変換部113は、選択された第1のマッピング情報151に含まれるテクスチャ画像識別子153と同じテクスチャ画像識別子153が、第1の配置情報テーブル140に登録されているかを判定する。当該テクスチャ画像識別子153が第1の配置情報テーブル140に登録されている場合、選択された第1のマッピング情報151に対応するテクスチャ画像131は、第1のテクスチャアトラス170に配置済みである。
選択された第1のマッピング情報151に対応するテクスチャ画像131が、第1のテクスチャアトラス170に配置済みである場合、処理はステップS124に進む。
選択された第1のマッピング情報151に対応するテクスチャ画像131が、第1のテクスチャアトラス170に配置済みでない場合、処理はステップS123に進む。
具体的には、テクスチャアトラス生成部112は、図3に基づいて説明したテクスチャアトラス生成処理(S110)を実行する。但し、テクスチャアトラス生成処理(S110)の対象は、S101で受け付けられた追加画像群ではなく、ステップS121で選択された第1のマッピング情報151に対応するテクスチャ画像131である。
第2のマッピング情報151は、選択された第1のマッピング情報151と同じく、ポリゴン情報152と、テクスチャ画像識別子153と、テクスチャ情報154とを含む。
第2のマッピング情報151に含まれるポリゴン情報152は、選択された第1のマッピング情報151に含まれるポリゴン情報152と同じである。
第2のマッピング情報151に含まれるテクスチャ画像識別子153は、第1のテクスチャアトラス170を識別する識別子である。
第2のマッピング情報151に含まれるテクスチャ情報154は、第1のテクスチャアトラス170のうちの選択された第1のマッピング情報151に含まれるテクスチャ情報154に対応するテクスチャ132が配置された部分、を特定する情報である。テクスチャ情報154に対応するテクスチャ132は、テクスチャ画像識別子153で識別されるテクスチャ画像131のうちのテクスチャ情報154で特定される部分にあるテクスチャ132である。
まず、情報変換部113は、選択された第1のマッピング情報151から、テクスチャ画像識別子を取得する。
次に、情報変換部113は、取得されたテクスチャ画像識別子153と同じテクスチャ画像識別子を含んだ配置情報141を、第1の配置情報テーブル140から選択する。
次に、情報変換部113は、選択された配置情報141に含まれる範囲情報から、座標値(U、V)を取得する。
そして、情報変換部113は、取得された座標値(U、V)を、選択された第1のマッピング情報151に含まれるテクスチャ座標値(U、V)に加算する。
図7の第1のマッピング情報データ150において、テクスチャ画像識別子「T0」に対応するポリゴン識別子は「A」および「B」である。図4の第1の配置情報テーブル140において、テクスチャ画像識別子「T0」に対応する座標値(U、V)は(0、0)である。そのため、図9の第2のマッピング情報データ150において、ポリゴン識別子「A」「B」に対応するテクスチャ座標値(U、V)は、図7の第1のマッピング情報データ150におけるテクスチャ座標値(U、V)と同じである。
図7の第1のマッピング情報データ150において、テクスチャ画像識別子「T1」に対応するポリゴン識別子は「C」および「D」である。図4の第1の配置情報テーブル140において、テクスチャ画像識別子「T1」に対応する座標値(U、V)は(10、0)である。そのため、図9の第2のマッピング情報データ150において、ポリゴン識別子「C」「D」に対応するテクスチャ座標値(U、V)は、図7の第1のマッピング情報データ150におけるテクスチャ座標値(U、V)に(10、0)を足した値である。
図7の第1のマッピング情報データ150において、テクスチャ画像識別子「T2」に対応するポリゴン識別子は「E」および「F」である。図4の第1の配置情報テーブル140において、テクスチャ画像識別子「T2」に対応する座標値(U、V)は(20、0)である。そのため、図9の第2のマッピング情報データ150において、ポリゴン識別子「E」「F」に対応するテクスチャ座標値(U、V)は、図7の第1のマッピング情報データ150におけるテクスチャ座標値(U、V)に(20、0)を足した値である。
情報変換部113は、第2のマッピング情報151を描画部121に受け渡す。
そのため、描画部121は、第1のテクスチャアトラス170から、第2のマッピング情報151に含まれるテクスチャ情報154で特定される部分に配置されたテクスチャ132をコピーする。
次に、描画部121は、ポリゴン画像160から、第2のマッピング情報151に含まれるポリゴン情報152で特定される部分に位置するポリゴン161を選択する。
そして、描画部121は、第1のテクスチャアトラス170からコピーされたテクスチャ132を、ポリゴン画像160から選択されたポリゴン161に描画する。
未選択の第1のマッピング情報151がある場合、処理はステップS121に戻る。
未選択の第1のマッピング情報151がない場合、テクスチャマッピング処理(S120)は終了する。
図10のポリゴン画像160において、図9の第2のマッピング情報データ150内のポリゴン情報152に対応するポリゴン161に、図9の第2のマッピング情報データ150内のテクスチャ情報154に対応するテクスチャ画像131が描画されている。
ステップS131において、テクスチャコピー部119は、第2のテクスチャアトラス170を生成する。
具体的には、テクスチャコピー部119が第2のプロセッサ911に第2のテクスチャアトラス170用の記憶領域の確保を要求し、第2のプロセッサ911が第2のテクスチャアトラス170用の記憶領域を第2の記憶部192に確保する。
第2の配置情報テーブル140は、第2のテクスチャアトラス170に対応する配置情報テーブル140である。
具体的には、テクスチャコピー部119は、第2の配置情報テーブル140用の記憶領域を第1の記憶部191に確保する。
対象画像群は、第1のテクスチャアトラス170から第2のテクスチャアトラス170にコピーされる対象となる1つ以上のテクスチャ画像131である。
具体的には、アプリケーション部110が、描画に必要なテクスチャ画像群を特定する。そして、テクスチャコピー部119は、特定されたテクスチャ画像群から、第1のテクスチャアトラス170に配置されている1つ以上のテクスチャ画像131を、対象画像群として選択する。
まず、テクスチャコピー部119は、第2の配置情報テーブル140を参照して、第2のテクスチャアトラス170の空き領域から、配置範囲を決定する。決定される配置範囲は、選択されたテクスチャ画像131が配置される部分である。配置範囲は、ステップS114と同じく、2次元ビンパッキング問題を解くためのアルゴリズムによって決定することができる。
次に、テクスチャコピー部119は、テクスチャ画像識別子と、テクスチャアトラス識別子と、範囲情報とを含んだ配置情報141を生成する。
テクスチャ画像識別子は、選択されたテクスチャ画像131の識別子である。
テクスチャアトラス識別子は、第2のテクスチャアトラス170の識別子である。
範囲情報は、決定された配置範囲を示す情報である。
そして、テクスチャコピー部119は、生成された配置情報141を、第2の配置情報テーブル140に追加する。
図12の第2の配置情報テーブル140は、テクスチャ画像識別子「T0」を含んだ配置情報141と、テクスチャ画像識別子「T2」を含んだ配置情報141とを有する。
第3のマッピング情報151は、選択されたテクスチャ画像131に対応するマッピング情報151である。
第3のマッピング情報151は、第1のマッピング情報151および第2のマッピング情報151と同じく、ポリゴン情報152とテクスチャ画像識別子153とテクスチャ情報154とを含む。
第3のマッピング情報151に含まれるポリゴン情報152は、第2のテクスチャアトラス170のうちの一部を特定する情報である。
第3のマッピング情報151に含まれるテクスチャ画像識別子153は、第1のテクスチャアトラス170を識別する識別子である。
第3のマッピング情報151に含まれるテクスチャ情報154は、第1のテクスチャアトラス170のうち、第1のマッピング情報151に含まれるテクスチャ情報154に対応するテクスチャ132が配置された部分を特定する情報である。
テクスチャ画像131の形状が四角形であり、テクスチャ132の形状が三角形である場合、テクスチャコピー部119は、第3のマッピング情報151を2つ生成する。
まず、テクスチャコピー部119は、第2の配置情報テーブル140内の配置情報141に含まれる範囲情報を用いて、4つの座標値を算出する。この4つの座標値は、配置範囲が成す四角形の頂点毎の座標値である。範囲情報(U、V、W、H)が(0、0、10、10)である場合、4つの座標値は、(0、0)、(10、0)、(0、10)および(10、10)である。
そして、テクスチャコピー部119は、4つの座標値を用いて、3つの座標値を2組選択する。2組の3つの座標値は、配置範囲が成す四角形を構成する2つの三角形のそれぞれの頂点毎の座標値である。上記の場合、(0、0)と(10、0)と(0、10)との組、および、(10、0)と(0、10)と(10、10)との組が選択される。
選択される3つの座標値が、ポリゴン座標値となる。
テクスチャコピー部119は、第3のマッピング情報151を描画部121に受け渡す。
第3のマッピング情報151に含まれるテクスチャ画像識別子153は、第1のテクスチャアトラス170を識別する。
そのため、描画部121は、第1のテクスチャアトラス170から、第3のマッピング情報151に含まれるテクスチャ情報154で特定される部分に配置されたテクスチャ132をコピーする。
次に、描画部121は、第2のテクスチャアトラス170から、第3のマッピング情報151に含まれるポリゴン情報152で特定される部分を選択する。
そして、描画部121は、第1のテクスチャアトラス170からコピーされたテクスチャ132を、第2のテクスチャアトラス170から選択された部分に描画する。
未選択のテクスチャ画像131がある場合、処理はステップS134に戻る。
未選択のテクスチャ画像131がない場合、処理はステップS139に進む。
以後、第2のテクスチャアトラス170が第1のテクスチャアトラス170として使用され、第2の配置情報テーブル140が第1の配置情報テーブル140として使用される。
図14の第3のテクスチャアトラス170において、図13の第3のマッピング情報データ150内のポリゴン情報152に対応する部分に、図13の第3のマッピング情報データ150内のテクスチャ情報154に対応するテクスチャ画像131が描画されている。
テクスチャ画像群130は、第1の記憶部191として機能する第1のメモリ902に記憶される。第1のメモリ902は、具体的には、メインメモリである。
テクスチャアトラス170は、第2の記憶部192として機能する第2のメモリ912に記憶される。第2のメモリ912は、具体的には、VRAMである。
VRAM内でのデータのコピーに要する時間は、メインメモリからVRAMへのデータのコピーに要する時間に比べて短い。
そこで、テクスチャマッピング装置100は、新たなテクスチャアトラス170を生成する際、古いテクスチャアトラス170内の一部のテクスチャ画像131を、新たなテクスチャアトラス170にコピーする。
その結果、メインメモリ内のテクスチャ画像群130からVRAM内の新たなテクスチャアトラス170にコピーされるテクスチャ画像131が少なくなる。
これにより、ポリゴン画像160を描画する速度の低下を抑えることが可能になる。
テクスチャ画像131の形状は四角形以外の形状であってもよい。
テクスチャ画像131に含まれるテクスチャ132の個数は1つまたは3つ以上であってもよい。
テクスチャ132およびポリゴン161の形状は三角形以外の形状であってもよい。
つまり、新たなテクスチャアトラス170は、古いテクスチャアトラス170である第1のテクスチャアトラス170内の空き領域が不足したとき以外のタイミングで生成されてもよい。
具体的には、新たなテクスチャアトラス170は定期的に生成されてもよい。新たなテクスチャアトラス170が定期的に生成されることにより、不要なテクスチャ画像131をテクスチャアトラス170から排除することができる。
使用頻度が高いテクスチャ画像131は、以下のように判定される。
アプリケーション部110は、使用回数テーブルを用いて、テクスチャ画像131毎の使用回数を数える。使用回数テーブルは、テクスチャ画像識別子と使用回数とが互いに対応付けられたテーブルであり、第1の記憶部191に記憶される。
具体的には、アプリケーション部110は、マッピング情報データ150を出力するときに、マッピング情報データ150に含まれるテクスチャ画像識別子153と同じ識別子に対応付けられた使用回数を使用回数テーブルから選択する。そして、アプリケーション部110は、選択された使用回数に1を加算する。
テクスチャコピー部119は、使用回数テーブルを用いて、テクスチャ画像131毎の使用頻度を算出する。使用頻度は、使用回数の合計に対する使用回数の割合である。
そして、テクスチャコピー部119は、テクスチャ画像131毎の使用頻度を頻度閾値と比較する。
使用頻度が頻度閾値より高いテクスチャ画像131が、使用頻度が高いテクスチャ画像131である。
使用される可能性が高いテクスチャ画像131は、以下のように判定される。
第1の記憶部191は、予測値テーブルを記憶する。予測値テーブルは、テクスチャ画像識別子と予測値とが互いに対応付けられたテーブルである。予測値は、使用される可能性の高さを示す値である。
テクスチャコピー部119は、テクスチャ画像131毎の予測値を予測閾値と比較する。
予測値が予測閾値より高いテクスチャ画像131が、使用される可能性が高いテクスチャ画像131である。
破棄されるテクスチャアトラス170を選択する方法は任意である。
具体的には、古い方のテクスチャアトラス170が選択されてもよい。
また、使用頻度が高いテクスチャ画像131が少ない方のテクスチャアトラス170が選択されてもよい。使用頻度が高いテクスチャ画像131は、上記の通り、頻度閾値を用いて判定される。テクスチャコピー部119は、テクスチャアトラス170毎に使用頻度が頻度閾値より高いテクスチャ画像131の数を算出し、算出された数が少ない方のテクスチャアトラス170を選択する。
また、使用される可能性が低いテクスチャ画像131が多い方のテクスチャアトラス170が選択されてもよい。使用される可能性が低いテクスチャ画像131は、上記の予測値と予測閾値とを用いて判定する。予測値が予測閾値より低いテクスチャ画像131が、使用される可能性が低いテクスチャ画像131である。テクスチャコピー部119は、テクスチャアトラス170毎に予測値が予測閾値より低いテクスチャ画像131の数を算出し、算出された数が多い方のテクスチャアトラス170を選択する。
具体的には、VRAMのメモリ使用量に応じて、新たなテクスチャアトラス170の大きさが調整されてもよい。その場合、メモリ使用量が多いほど、新たなテクスチャアトラス170は小さくなる。
実施の形態において、テクスチャマッピング装置100の機能はハードウェアで実現してもよい。
図15に、テクスチャマッピング装置100の機能がハードウェアで実現される場合の構成を示す。
テクスチャマッピング装置100は第1の処理回路991と第2の処理回路992とを備える。第1の処理回路991および第2の処理回路992はプロセッシングサーキットリともいう。
第1の処理回路991は、アプリケーション部110と受付部111とテクスチャアトラス生成部112と情報変換部113とテクスチャコピー部119と第1の記憶部191といった「部」の機能を実現する専用の電子回路である。
第2の処理回路992は、描画部121と第2の記憶部192といった「部」の機能を実現する専用の電子回路である。
具体的には、第1の処理回路991および第2の処理回路992は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAまたはこれらの組み合わせである。GAはGate Arrayの略称であり、ASICはApplication Specific Integrated Circuitの略称であり、FPGAはField Programmable Gate Arrayの略称である。
Claims (9)
- 1つ以上のテクスチャ画像であるテクスチャ画像群が記憶される第1の記憶部と、
前記テクスチャ画像群からコピーされた1つ以上のテクスチャ画像が配置された第1のテクスチャアトラスと、新たに生成される第2のテクスチャアトラスとが記憶される第2の記憶部と、
前記第1のテクスチャアトラスに配置された少なくともいずれかのテクスチャ画像を、前記第1のテクスチャアトラスから前記第2のテクスチャアトラスにコピーするテクスチャコピー部と
を備えるテクスチャマッピング装置。 - テクスチャ画像は、1つ以上のテクスチャが含まれる画像であり、
前記第2の記憶部は、テクスチャが描画されるポリゴンが含まれるポリゴン画像を記憶し、
前記テクスチャマッピング装置は、
前記ポリゴン画像のうちの描画の対象となるポリゴンが位置する部分を特定するポリゴン情報と、描画の対象となるテクスチャが含まれるテクスチャ画像を識別するテクスチャ画像識別子と、テクスチャ画像識別子で識別されるテクスチャ画像のうちの描画の対象となるテクスチャが含まれる部分を特定するテクスチャ情報と、を含んだ第1のマッピング情報を受け付ける受付部と、
前記第1のマッピング情報に含まれるテクスチャ画像識別子で識別されるテクスチャ画像が前記第1のテクスチャアトラスに配置されていない場合、当該テクスチャ画像を前記第1のテクスチャアトラスに配置するテクスチャアトラス生成部と、
前記第1のマッピング情報に含まれるポリゴン情報と同じポリゴン情報を含み、前記第1のテクスチャアトラスを識別する識別子をテクスチャ画像識別子として含み、前記第1のテクスチャアトラスのうちの前記第1のマッピング情報に含まれるテクスチャ情報に対応するテクスチャが配置された部分を特定する情報をテクスチャ情報として含んだ第2のマッピング情報を生成する情報変換部と、
前記第2のマッピング情報に含まれるテクスチャ画像識別子で識別される前記第1のテクスチャアトラスに含まれるテクスチャのうち、前記第2のマッピング情報に含まれるテクスチャ情報で特定される部分に配置されたテクスチャを、前記ポリゴン画像に含まれるポリゴンのうち、前記第2のマッピング情報に含まれるポリゴン情報で特定される部分に位置するポリゴンに描画する描画部と
を備える請求項1に記載のテクスチャマッピング装置。 - 前記テクスチャコピー部は、前記第2のテクスチャアトラスのうちの一部を特定する情報をポリゴン情報として含み、前記第1のテクスチャアトラスを識別する識別子をテクスチャ画像識別子として含み、前記第1のテクスチャアトラスのうち、前記第1のマッピング情報に含まれるテクスチャ情報に対応するテクスチャが配置された部分を特定する情報をテクスチャ情報として含んだ第3のマッピング情報を生成し、
前記描画部は、前記第3のマッピング情報に含まれるテクスチャ画像識別子で識別される前記第1のテクスチャアトラスに含まれるテクスチャのうち、前記第3のマッピング情報に含まれるテクスチャ情報で特定される部分に配置されたテクスチャを、前記第2のテクスチャアトラスのうち、前記第3のマッピング情報に含まれるポリゴン情報で特定される部分に描画する
請求項2に記載のテクスチャマッピング装置。 - 前記テクスチャコピー部は、前記第3のマッピング情報に含まれるポリゴン情報で特定される部分を、ビンパッキング問題を解くためのアルゴリズムによって決定する
請求項3に記載のテクスチャマッピング装置。 - 前記テクスチャコピー部は、前記第1のテクスチャアトラスに配置されたテクスチャ画像のうち、使用頻度が頻度閾値より高いテクスチャ画像を、前記第1のテクスチャアトラスから前記第2のテクスチャアトラスにコピーする
請求項1に記載のテクスチャマッピング装置。 - 前記テクスチャコピー部は、前記第1のテクスチャアトラスに配置されたテクスチャ画像のうち、使用される可能性の高さを示す予測値が予測閾値より高いテクスチャ画像を、前記第1のテクスチャアトラスから前記第2のテクスチャアトラスにコピーする
請求項1に記載のテクスチャマッピング装置。 - 前記第2の記憶部は、複数の第1のテクスチャアトラスを記憶し、
前記テクスチャコピー部は、第1のテクスチャアトラス毎に使用頻度が頻度閾値より高いテクスチャ画像の数を算出し、算出された数が少ない方の第1のテクスチャアトラスを選択し、選択された第1のテクスチャアトラスから前記第2のテクスチャアトラスにテクスチャ画像をコピーし、選択された第1のテクスチャアトラスを破棄する
請求項1に記載のテクスチャマッピング装置。 - 前記第2の記憶部は、複数の第1のテクスチャアトラスを記憶し、
前記テクスチャコピー部は、第1のテクスチャアトラス毎に使用される可能性の高さを示す予測値が予測閾値より低いテクスチャ画像の数を算出し、算出された数が多い方の第1のテクスチャアトラスを選択し、選択された第1のテクスチャアトラスから前記第2のテクスチャアトラスにテクスチャ画像をコピーし、選択された第1のテクスチャアトラスを破棄する
請求項1に記載のテクスチャマッピング装置。 - 第1のメモリと第2のメモリとを備えるコンピュータを機能させるためのテクスチャマッピングプログラムであって、
前記第1のメモリは、1つ以上のテクスチャ画像であるテクスチャ画像群が記憶されるメモリであり、
前記第2のメモリは、前記テクスチャ画像群からコピーされた1つ以上のテクスチャ画像が配置された第1のテクスチャアトラスと、新たに生成される第2のテクスチャアトラスとが記憶されるメモリであり、
前記第1のテクスチャアトラスに配置された少なくともいずれかのテクスチャ画像を、前記第1のテクスチャアトラスから前記第2のテクスチャアトラスにコピーするテクスチャコピー処理を
コンピュータに実行させるためのテクスチャマッピングプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/058197 WO2017158734A1 (ja) | 2016-03-15 | 2016-03-15 | テクスチャマッピング装置およびテクスチャマッピングプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6271107B1 true JP6271107B1 (ja) | 2018-01-31 |
JPWO2017158734A1 JPWO2017158734A1 (ja) | 2018-03-22 |
Family
ID=59851161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017555736A Active JP6271107B1 (ja) | 2016-03-15 | 2016-03-15 | テクスチャマッピング装置およびテクスチャマッピングプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190026925A1 (ja) |
JP (1) | JP6271107B1 (ja) |
CN (1) | CN108780583A (ja) |
DE (1) | DE112016006387T5 (ja) |
WO (1) | WO2017158734A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6975665B2 (ja) * | 2018-03-14 | 2021-12-01 | 日本ユニシス株式会社 | テクスチャマッピング装置およびテクスチャマッピング用プログラム |
US11348287B2 (en) * | 2018-07-16 | 2022-05-31 | Adobe Inc. | Rendering of graphic objects with pattern paint using a graphics processing unit |
WO2020129201A1 (ja) * | 2018-12-20 | 2020-06-25 | 三菱電機株式会社 | 情報処理装置、プログラム及び情報処理方法 |
GB2593206B (en) * | 2020-03-19 | 2023-04-26 | Samsung Electronics Co Ltd | Method, apparatus and computer program for generating or updating a texture atlas |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004005228A (ja) * | 2002-05-31 | 2004-01-08 | Toshiba Corp | 高次元テクスチャ描画装置、高次元テクスチャ圧縮装置、高次元テクスチャ描画システム、高次元テクスチャ描画方法並びにプログラム |
JP2013206094A (ja) * | 2012-03-28 | 2013-10-07 | Panasonic Corp | 情報処理装置、カーナビゲーション装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7889205B1 (en) * | 2006-10-24 | 2011-02-15 | Adobe Systems Incorporated | Frame buffer based transparency group computation on a GPU without context switching |
US8994727B2 (en) * | 2010-11-09 | 2015-03-31 | Mitsubishi Electric Corporation | Map symbol drawing device |
CN103392190B (zh) * | 2011-04-04 | 2016-01-20 | 三菱电机株式会社 | 纹理映射装置 |
JP2012221092A (ja) * | 2011-04-06 | 2012-11-12 | Sony Corp | 画像処理装置、画像処理方法およびプログラム |
US8872839B2 (en) * | 2011-09-09 | 2014-10-28 | Microsoft Corporation | Real-time atlasing of graphics data |
CN104054112A (zh) * | 2012-01-27 | 2014-09-17 | 三菱电机株式会社 | 描绘数据生成装置以及图像描绘装置 |
KR101338370B1 (ko) * | 2012-04-27 | 2013-12-10 | 주식회사 컴퍼니원헌드레드 | 지피유를 이용한 2차원 벡터 그래픽스 패스의 배치 렌더링 방법 |
JP2014056371A (ja) * | 2012-09-12 | 2014-03-27 | Fujitsu Semiconductor Ltd | 画像処理装置 |
-
2016
- 2016-03-15 US US16/071,711 patent/US20190026925A1/en not_active Abandoned
- 2016-03-15 CN CN201680083208.1A patent/CN108780583A/zh active Pending
- 2016-03-15 JP JP2017555736A patent/JP6271107B1/ja active Active
- 2016-03-15 WO PCT/JP2016/058197 patent/WO2017158734A1/ja active Application Filing
- 2016-03-15 DE DE112016006387.3T patent/DE112016006387T5/de not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004005228A (ja) * | 2002-05-31 | 2004-01-08 | Toshiba Corp | 高次元テクスチャ描画装置、高次元テクスチャ圧縮装置、高次元テクスチャ描画システム、高次元テクスチャ描画方法並びにプログラム |
JP2013206094A (ja) * | 2012-03-28 | 2013-10-07 | Panasonic Corp | 情報処理装置、カーナビゲーション装置 |
Also Published As
Publication number | Publication date |
---|---|
DE112016006387T5 (de) | 2018-10-18 |
US20190026925A1 (en) | 2019-01-24 |
CN108780583A (zh) | 2018-11-09 |
WO2017158734A1 (ja) | 2017-09-21 |
JPWO2017158734A1 (ja) | 2018-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10210651B2 (en) | Allocation of tiles to processing engines in a graphics processing system | |
US10535114B2 (en) | Controlling multi-pass rendering sequences in a cache tiling architecture | |
EP3471059B1 (en) | Geometry to tiling arbiter for tile-based rendering system | |
JP5456812B2 (ja) | タイルベース・レンダリング・システムにおけるマルチコアの形状処理 | |
US9483270B2 (en) | Distributed tiled caching | |
JP6271107B1 (ja) | テクスチャマッピング装置およびテクスチャマッピングプログラム | |
US9449421B2 (en) | Method and apparatus for rendering image data | |
US8902228B2 (en) | Optimizing resolve performance with tiling graphics architectures | |
US9633405B2 (en) | Tile based computer graphics | |
US11954782B2 (en) | Hybrid render with preferred primitive batch binning and sorting | |
KR20160148594A (ko) | 그래픽스 프로세싱에 있어서 렌더 타깃에 기초한 플렉스 렌더링 | |
TW201432609A (zh) | 已分配的拼貼快取 | |
KR20110080503A (ko) | 타일 기반의 렌더링 장치 및 렌더링 방법 | |
US20180374185A1 (en) | Techniques for maintaining atomicity and ordering for pixel shader operations | |
JP6170690B2 (ja) | レンダリング装置及びその方法 | |
WO2014087572A1 (ja) | 領域分割描画装置及び領域分割描画方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171024 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20171024 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20171108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6271107 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |