JP3377488B2 - GAME SYSTEM AND INFORMATION STORAGE MEDIUM - Google Patents
GAME SYSTEM AND INFORMATION STORAGE MEDIUMInfo
- Publication number
- JP3377488B2 JP3377488B2 JP2000032588A JP2000032588A JP3377488B2 JP 3377488 B2 JP3377488 B2 JP 3377488B2 JP 2000032588 A JP2000032588 A JP 2000032588A JP 2000032588 A JP2000032588 A JP 2000032588A JP 3377488 B2 JP3377488 B2 JP 3377488B2
- Authority
- JP
- Japan
- Prior art keywords
- free
- point
- coefficient set
- curve
- form surface
- 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.)
- Expired - Fee Related
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明は、ゲームシステム及
び情報記憶媒体に関する。TECHNICAL FIELD The present invention relates to a game system and an information storage medium.
【0002】[0002]
【背景技術及び発明が解決しようとする課題】従来よ
り、仮想的な3次元空間であるオブジェクト空間内の所
与の視点から見える画像を生成するゲームシステムが知
られており、いわゆる仮想現実を体験できるものとして
人気が高い。レーシングゲームを楽しむことができるゲ
ームシステムを例にとれば、プレーヤは、レーシングカ
ー(オブジェクト)を操作してオブジェクト空間内で走
行させ、他のプレーヤやコンピュータが操作するレーシ
ングカーと競争することで3次元ゲームを楽しむ。2. Description of the Related Art Conventionally, a game system for generating an image viewed from a given viewpoint in an object space, which is a virtual three-dimensional space, is known, and a so-called virtual reality is experienced. It is very popular as something you can do. Taking a game system that can enjoy a racing game as an example, a player operates a racing car (object) to run in the object space and competes with another player or a racing car operated by a computer. Enjoy the dimensional game.
【0003】さて、このようなゲームシステムでは、レ
ーシングカーなどを表すオブジェクトは、多数のポリゴ
ンの組み合わせにより構成されていた。In such a game system, an object representing a racing car or the like is composed of a combination of many polygons.
【0004】しかしながら、オブジェクトをポリゴンで
構成する手法では、オブジェクトの面を、今一つ滑らか
に表現できないという問題がある。However, the method of constructing an object with polygons has a problem that the surface of the object cannot be expressed smoothly.
【0005】この場合、例えばオブジェクトのポリゴン
数を増やせば、オブジェクトの面を、ある程度滑らかに
表現できる。しかし、ポリゴン数が増加すると、演算処
理の負担が増え、1フレーム内に全ての画像生成処理を
完了させるというリアルタイム処理を実現できなくな
る。In this case, for example, if the number of polygons of the object is increased, the surface of the object can be expressed to some extent smoothly. However, when the number of polygons increases, the burden of arithmetic processing increases and it becomes impossible to realize the real-time processing of completing all the image generation processing within one frame.
【0006】一方、CAD/CAM(Computer Aided D
esign and Computer Aided Manufacturing)の分野で
は、NURBS(Non Uniform Rational B-Spline)な
どの自由曲面(自由曲線)が広く使用されている。On the other hand, CAD / CAM (Computer Aided D
In the field of esign and computer aided manufacturing, free curved surfaces (free curved lines) such as NURBS (Non Uniform Rational B-Spline) are widely used.
【0007】このNURBSによれば、少ない制御点で
オブジェクトの滑らかな面を表現できるようになる。According to this NURBS, a smooth surface of an object can be expressed with a small number of control points.
【0008】しかしながらNURBSには、演算処理の
負荷が非常に重いという欠点がある。従って、NURB
Sは、CAD/CAMのようにリアルタイム処理が要求
されない分野では広く使用されているが、リアルタイム
処理が要求されるゲームシステムにおいては、未だ実用
化されていないのが現状である。However, NURBS has a drawback that the load of arithmetic processing is very heavy. Therefore, NURB
Although S is widely used in fields where real-time processing is not required, such as CAD / CAM, it is the current situation that it has not been put to practical use in game systems that require real-time processing.
【0009】本発明は、以上のような課題に鑑みてなさ
れたものであり、その目的とするところは、自由曲面や
自由曲線で表されるオブジェクトの画像を少ない処理負
担で生成できるゲームシステム及び情報記憶媒体を提供
することにある。The present invention has been made in view of the above problems, and an object thereof is to provide a game system and an image of an object represented by a free-form surface or a free-form curve with a small processing load. It is to provide an information storage medium.
【0010】[0010]
【課題を解決するための手段】上記課題を解決するため
に、本発明は、画像生成を行うゲームシステムであっ
て、ノット間隔が一定でないノットベクトルと制御点と
に基づいて形状が特定されるノンユニフォームな自由曲
面又は自由曲線の混ぜ合わせ関数の係数セットを、パラ
メータを変化させながら自由曲面又は自由曲線上の各点
を順次求める処理の前段階の処理において用意する手段
と、用意された係数セットと、制御点とに基づいて、パ
ラメータを変化させながら自由曲面又は自由曲線上の各
点を順次求める手段とを含むことを特徴とする。また本
発明に係る情報記憶媒体は、コンピュータにより使用可
能な情報記憶媒体であって、上記手段を実行するための
プログラムを含むことを特徴とする。また本発明に係る
プログラムは、コンピュータにより使用可能なプログラ
ム(搬送波に具現化されるプログラムを含む)であっ
て、上記手段を実行するための処理ルーチンを含むこと
を特徴とする。In order to solve the above-mentioned problems, the present invention is a game system for generating images, in which the shape is specified based on knot vectors and control points whose knot intervals are not constant. A means for preparing a coefficient set of a non-uniform free-form surface or free-form curve blending function in the process before the step of sequentially obtaining each point on the free-form surface or free curve while changing the parameters, and the prepared coefficient It is characterized by including means for sequentially obtaining each point on the free-form surface or free-form curve while changing the parameter based on the set and the control point. An information storage medium according to the present invention is an information storage medium that can be used by a computer and includes a program for executing the above means. A program according to the present invention is a program that can be used by a computer (including a program embodied in a carrier wave) and includes a processing routine for executing the above means.
【0011】本発明によれば、ノンユニフォームな自由
曲面又は自由曲線の混ぜ合わせ関数の係数セットが、自
由曲面又は自由曲線上の各点を求める処理の前段階の処
理において用意される。従って、自由曲面又は自由曲線
上の各点を順次求める処理の中(ループ)から、係数セ
ットを求める処理を外すことができる。この結果、自由
曲面又は自由曲線で表されるオブジェクトの画像のリア
ルタイム生成が可能になる。According to the present invention, a non-uniform free-form surface or free-form curve blending function coefficient set is prepared in the preceding step of the processing for obtaining each point on the free-form surface or free curve. Therefore, the process for obtaining the coefficient set can be omitted from the process (loop) for sequentially obtaining each point on the free-form surface or the free-form curve. As a result, real-time generation of an image of an object represented by a free-form surface or free-form curve becomes possible.
【0012】また本発明に係るゲームシステム、情報記
憶媒体及びプログラムは、自由曲面又は自由曲線上の各
点を順次求める処理の前段階の処理において、再帰形表
現の漸化式を展開した多項式で表される混ぜ合わせ関数
の係数セットをノットベクトルに基づき演算すること
で、係数セットが用意されることを特徴とする。Further, the game system, the information storage medium and the program according to the present invention are polynomials obtained by expanding recurrence formulas of recursive expressions in the process before the process of sequentially obtaining each point on the free-form surface or the free-form curve. The feature is that the coefficient set is prepared by calculating the coefficient set of the mixing function represented based on the knot vector.
【0013】このように、漸化式を展開した多項式で表
される混ぜ合わせ関数の係数セットを、ノットベクトル
に基づき演算するようにすれば、漸化式を再帰的に解く
場合に比べて、より高速に混ぜ合わせ関数の係数セット
を求めることができるようになる。As described above, when the coefficient set of the mixing function represented by the polynomial obtained by expanding the recurrence formula is calculated based on the knot vector, as compared with the case where the recurrence formula is recursively solved, The coefficient set of the blending function can be obtained at higher speed.
【0014】また本発明に係るゲームシステム、情報記
憶媒体及びプログラムは、自由曲面又は自由曲線上の各
点を順次求める処理の前段階の処理において、混ぜ合わ
せ関数の係数セットを情報記憶媒体から読み込む又はネ
ットワークを介して読み込むことで、係数セットが用意
されることを特徴とする。Further, the game system, the information storage medium and the program according to the present invention read the coefficient set of the blending function from the information storage medium in the process before the process of sequentially obtaining each point on the free-form surface or the free-form curve. Alternatively, it is characterized in that the coefficient set is prepared by reading through the network.
【0015】このようにすれば、係数セットを演算する
処理が不要になり、処理負荷を軽減化できる。By doing so, the processing for calculating the coefficient set becomes unnecessary and the processing load can be reduced.
【0016】また本発明に係るゲームシステム、情報記
憶媒体及びプログラムは、用意された係数セットに基づ
いて、自由曲面又は自由曲線の法線ベクトルを求める手
段(或いは該手段を実行するためのプログラム又は処理
ルーチン)を含むことを特徴とする。Further, the game system, the information storage medium and the program according to the present invention are means for obtaining a normal vector of a free curved surface or a free curve based on a prepared coefficient set (or a program for executing the means or Processing routine).
【0017】このようにすれば、得られた法線ベクトル
を用いて、シェーディング処理、ヒットチェック処理等
を実現できるようになる。By doing so, it becomes possible to realize shading processing, hit check processing and the like by using the obtained normal vector.
【0018】また本発明に係るゲームシステム、情報記
憶媒体及びプログラムは、自由曲面又は自由曲線上の各
点を順次求める処理の前段階の処理において、混ぜ合わ
せ関数の係数セットに基づき得られる法線算出用の係数
セットが用意され、用意された前記法線算出用の係数セ
ットに基づいて、自由曲面又は自由曲線の法線ベクトル
が求められることを特徴とする。Further, the game system, the information storage medium and the program according to the present invention have a normal obtained based on the coefficient set of the blending function in the process before the process of sequentially obtaining each point on the free-form surface or the free-form curve. A coefficient set for calculation is prepared, and a normal vector of a free-form surface or free-form curve is obtained based on the prepared coefficient set for calculation of the normal line.
【0019】このようにすれば、自由曲面又は自由曲線
上の各点を順次求める処理の中から、法線算出用の係数
セットを求める処理を外すことができるため、処理速度
を高速化できる。With this configuration, the process of obtaining the coefficient set for calculating the normal can be omitted from the process of sequentially obtaining each point on the free-form surface or free-form curve, so that the processing speed can be increased.
【0020】また本発明に係るゲームシステム、情報記
憶媒体及びプログラムは、自由曲面又は自由曲線の制御
点に対するアフィン変換をフレーム単位で行う手段(或
いは該手段を実行するためのプログラム又は処理ルーチ
ン)を含み、フレーム単位で行われるアフィン変換の前
段階の処理において、混ぜ合わせ関数の係数セットが用
意されることを特徴とするゲームシステム。Further, the game system, the information storage medium and the program according to the present invention include means (or a program or a processing routine for executing the means) for performing affine transformation on the free curved surface or the control point of the free curve in frame units. A game system characterized in that a coefficient set of a blending function is prepared in a process in a pre-stage of affine transformation performed in frame units.
【0021】このようにすれば、フレーム単位で行う処
理の中(ループ)から、混ぜ合わせ関数の係数セットを
求める処理を外すことができるため、フレーム単位で行
う処理の高速化を図れ、リアルタイム処理の要請に応え
ることができる。In this way, the processing for obtaining the coefficient set of the mixing function can be omitted from the processing (loop) performed in frame units, so that the processing in frame units can be speeded up and real-time processing can be achieved. Can meet the request of.
【0022】また本発明に係るゲームシステム、情報記
憶媒体及びプログラムは、パラメータを変化させながら
自由曲面又は自由曲線上の各点を順次求める処理の前段
階の処理において、混ぜ合わせ関数の係数セットと制御
点を含むオブジェクトデータが用意され、パラメータを
変化させながら自由曲面又は自由曲線上の各点を順次求
める処理の際に、前記オブジェクトデータの中から、パ
ラメータの値が属する変域に応じた係数セット、制御点
が読み出されることを特徴とする。Further, the game system, the information storage medium and the program according to the present invention include a coefficient set of a mixing function in a process before the process of sequentially obtaining each point on a free curved surface or a free curve while changing parameters. Object data including control points are prepared, and in the process of sequentially obtaining each point on the free-form surface or free-curve while changing the parameter, a coefficient corresponding to the domain to which the value of the parameter belongs from the object data. It is characterized in that sets and control points are read out.
【0023】このようにすれば、オブジェクトデータの
中から、その時のパラメータの値に応じた適正な係数セ
ット、制御点を読み出すことができるようになる。By doing so, it becomes possible to read out the appropriate coefficient set and control point according to the parameter value at that time from the object data.
【0024】なお、一度、係数セット、制御点をオブジ
ェクトデータの中から読み出した後は、パラメータの値
が属する変域が次の変域に変わらない限り、再度、係数
セット、制御点を読み出すことなく、同じ係数セット、
制御点を使い続けることが望ましい。Note that once the coefficient set and control points have been read from the object data, the coefficient sets and control points must be read again unless the domain to which the parameter value belongs changes to the next domain. Not the same coefficient set,
It is desirable to continue to use control points.
【0025】また、オブジェクトデータの中には、係数
セット、制御点の他に、パラメータの変域を特定するた
めのノットベクトルを含ませることが更に望ましい。It is further desirable that the object data include a knot vector for specifying the parameter domain, in addition to the coefficient set and the control point.
【0026】[0026]
【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて説明する。BEST MODE FOR CARRYING OUT THE INVENTION Preferred embodiments of the present invention will be described below with reference to the drawings.
【0027】1.構成
図1に、本実施形態のゲームシステム(画像生成システ
ム)のブロック図の一例を示す。なお同図において本実
施形態は、少なくとも処理部100を含めばよく(或い
は処理部100と記憶部170、或いは処理部100と
記憶部170と情報記憶媒体180を含めばよく)、そ
れ以外のブロック(例えば操作部160、表示部19
0、音出力部192、携帯型情報記憶装置194、通信
部196)については、任意の構成要素とすることがで
きる。1. Configuration FIG. 1 shows an example of a block diagram of a game system (image generation system) of the present embodiment. In the figure, in the present embodiment, at least the processing unit 100 may be included (or the processing unit 100 and the storage unit 170, or the processing unit 100, the storage unit 170, and the information storage medium 180 may be included), and other blocks. (For example, the operation unit 160 and the display unit 19
0, the sound output unit 192, the portable information storage device 194, and the communication unit 196) can be arbitrary constituent elements.
【0028】ここで処理部100は、システム全体の制
御、システム内の各ブロックへの命令の指示、ゲーム処
理、画像処理、又は音処理などの各種の処理を行うもの
であり、その機能は、各種プロセッサ(CPU、DSP
等)、或いはASIC(ゲートアレイ等)などのハード
ウェアや、所与のプログラム(ゲームプログラム)によ
り実現できる。Here, the processing section 100 performs various processing such as control of the entire system, instruction of commands to each block in the system, game processing, image processing, or sound processing, and the function thereof is Various processors (CPU, DSP
Etc.) or hardware such as ASIC (gate array etc.) or a given program (game program).
【0029】操作部160は、プレーヤが操作データを
入力するためのものであり、その機能は、レバー、ボタ
ン、筺体などのハードウェアにより実現できる。The operation section 160 is for the player to input operation data, and its function can be realized by hardware such as a lever, a button, and a housing.
【0030】記憶部170は、処理部100や通信部1
96などのワーク領域となるもので、その機能はRAM
などのハードウェアにより実現できる。The storage unit 170 includes the processing unit 100 and the communication unit 1.
A work area such as 96, whose function is RAM
It can be realized by hardware such as.
【0031】情報記憶媒体(コンピュータにより使用可
能な記憶媒体)180は、プログラムやデータなどの情
報を格納するものであり、その機能は、光ディスク(C
D、DVD)、光磁気ディスク(MO)、磁気ディス
ク、ハードディスク、磁気テープ、或いはメモリ(RO
M)などのハードウェアにより実現できる。処理部10
0は、この情報記憶媒体180に格納される情報に基づ
いて本発明(本実施形態)の種々の処理を行う。即ち情
報記憶媒体180には、本発明(本実施形態)の手段
(特に処理部100に含まれるブロック)を実行するた
めの情報(プログラム或いはデータ)が格納される。An information storage medium (a storage medium usable by a computer) 180 stores information such as programs and data, and its function is that of an optical disc (C
D, DVD), magneto-optical disk (MO), magnetic disk, hard disk, magnetic tape, or memory (RO
It can be realized by hardware such as M). Processing unit 10
0 performs various processes of the present invention (this embodiment) based on the information stored in the information storage medium 180. That is, the information storage medium 180 stores information (program or data) for executing the means of the present invention (the present embodiment) (particularly the block included in the processing unit 100).
【0032】なお、情報記憶媒体180に格納される情
報の一部又は全部は、システムへの電源投入時等に記憶
部170に転送されることになる。また情報記憶媒体1
80に記憶される情報は、本発明の処理を行うためのプ
ログラムコード、画像データ、音データ、表示物の形状
データ、テーブルデータ、リストデータ、本発明の処理
を指示するための情報、その指示に従って処理を行うた
めの情報等の少なくとも1つを含むものである。A part or all of the information stored in the information storage medium 180 is transferred to the storage unit 170 when the system is powered on. The information storage medium 1
Information stored in 80 is a program code for performing the process of the present invention, image data, sound data, shape data of a display object, table data, list data, information for instructing the process of the present invention, and instructions thereof. The information includes at least one of the information for performing the processing according to the above.
【0033】表示部190は、本実施形態により生成さ
れた画像を出力するものであり、その機能は、CRT、
LCD、或いはHMD(ヘッドマウントディスプレイ)
などのハードウェアにより実現できる。The display unit 190 outputs the image generated by the present embodiment, and its function is CRT,
LCD or HMD (head mounted display)
It can be realized by hardware such as.
【0034】音出力部192は、本実施形態により生成
された音を出力するものであり、その機能は、スピーカ
などのハードウェアにより実現できる。The sound output unit 192 outputs the sound generated by this embodiment, and its function can be realized by hardware such as a speaker.
【0035】携帯型情報記憶装置194は、プレーヤの
個人データやセーブデータなどが記憶されるものであ
り、この携帯型情報記憶装置194としては、メモリカ
ードや携帯型ゲーム装置などを考えることができる。The portable information storage device 194 stores personal data, save data, etc. of the player. As the portable information storage device 194, a memory card, a portable game device or the like can be considered. .
【0036】通信部196は、外部(例えばホスト装置
や他のゲームシステム)との間で通信を行うための各種
の制御を行うものであり、その機能は、各種プロセッ
サ、或いは通信用ASICなどのハードウェアや、プロ
グラムなどにより実現できる。The communication unit 196 performs various controls for communicating with the outside (for example, a host device or another game system), and its function is that of various processors or communication ASICs. It can be realized by hardware or programs.
【0037】なお本発明(本実施形態)の手段を実行す
るためのプログラム或いはデータは、ホスト装置(サー
バー)が有する情報記憶媒体からネットワーク及び通信
部196を介して情報記憶媒体180に配信するように
してもよい。このようなホスト装置(サーバー)の情報
記憶媒体の使用も本発明の範囲内に含まれる。The program or data for executing the means of the present invention (this embodiment) is distributed from the information storage medium of the host device (server) to the information storage medium 180 via the network and the communication unit 196. You may Use of such an information storage medium of the host device (server) is also included in the scope of the present invention.
【0038】処理部100は、ゲーム処理部110、画
像生成部130、音生成部150を含む。The processing section 100 includes a game processing section 110, an image generating section 130, and a sound generating section 150.
【0039】ここでゲーム処理部110は、コイン(代
価)の受け付け処理、各種モードの設定処理、ゲームの
進行処理、選択画面の設定処理、オブジェクト(1又は
複数のプリミティブ面)の位置や回転角度(X、Y又は
Z軸回り回転角度)を求める処理、オブジェクトを動作
させる処理(モーション処理)、視点の位置(仮想カメ
ラの位置)や視線角度(仮想カメラの回転角度)を求め
る処理、マップオブジェクトなどのオブジェクトをオブ
ジェクト空間へ配置する処理、ヒットチェック処理、ゲ
ーム結果(成果、成績)を演算する処理、複数のプレー
ヤが共通のゲーム空間でプレイするための処理、或いは
ゲームオーバー処理などの種々のゲーム処理を、操作部
160からの操作データや、携帯型情報記憶装置194
からの個人データ、保存データや、ゲームプログラムな
どに基づいて行う。Here, the game processing section 110 accepts coins (price), sets various modes, advances the game, sets selection screens, and positions and rotation angles of objects (one or more primitive surfaces). (Process for obtaining (rotation angle around X, Y or Z axis), process for moving object (motion process), process for obtaining viewpoint position (position of virtual camera) and line-of-sight angle (rotation angle of virtual camera), map object Various objects such as processing for arranging objects in the object space, processing for checking hits, processing for calculating game results (results, results), processing for allowing multiple players to play in a common game space, or game over processing. The game processing is performed by the operation data from the operation unit 160 and the portable information storage device 194.
Based on personal data, stored data, game programs, etc.
【0040】画像生成部130は、ゲーム処理部110
からの指示等にしたがって各種の画像処理を行い、例え
ばオブジェクト空間内で仮想カメラ(視点)から見える
画像を生成して、表示部190に出力する。The image generating section 130 includes a game processing section 110.
Various image processes are performed in accordance with an instruction from, and an image viewed from a virtual camera (viewpoint) in the object space is generated and output to the display unit 190, for example.
【0041】音生成部150は、ゲーム処理部110か
らの指示等にしたがって各種の音処理を行い、BGM、
効果音、又は音声などの音を生成し、音出力部192に
出力する。The sound generation unit 150 performs various kinds of sound processing according to the instruction from the game processing unit 110, BGM,
A sound such as a sound effect or a sound is generated and output to the sound output unit 192.
【0042】なお、ゲーム処理部110、画像生成部1
30、音生成部150の機能は、その全てをハードウェ
アにより実現してもよいし、その全てをプログラムによ
り実現してもよい。或いは、ハードウェアとプログラム
の両方により実現してもよい。The game processor 110 and the image generator 1
All of the functions of the sound generation unit 150 and the sound generation unit 150 may be realized by hardware, or all of them may be realized by a program. Alternatively, it may be realized by both hardware and a program.
【0043】画像生成部130は、係数演算(読み込
み)部132、アフィン変換部134、曲面(曲線)演
算部136、法線ベクトル演算部138、描画部140
を含む。The image generation unit 130 includes a coefficient calculation (reading) unit 132, an affine transformation unit 134, a curved surface (curve) calculation unit 136, a normal vector calculation unit 138, and a drawing unit 140.
including.
【0044】係数演算(読み込み)部132は、ノンユ
ニフォームな自由曲面又は自由曲線(以下、説明の便宜
のために、「自由曲面又は自由曲線」を単に「自由曲
面」と記載する)の混ぜ合わせ関数(基底関数)の係数
セット(例えば係数マトリクス)を、パラメータを変化
させながら自由曲面の各点を順次求めるループ処理の前
段階において用意する。The coefficient calculation (reading) unit 132 mixes non-uniform free-form surfaces or free-form curves (hereinafter, "free-form surface or free-form curve" is simply referred to as "free-form surface" for convenience of description). A coefficient set (for example, a coefficient matrix) of a function (basis function) is prepared in the preceding stage of the loop processing for sequentially obtaining each point of the free-form surface while changing the parameter.
【0045】より具体的には、例えば、自由曲面の各点
を求めるループ処理の前段階において、混ぜ合わせ関数
の係数セットをノットベクトル(パラメータの節目を数
値の列として与えるベクトル)に基づき演算すること
で、係数セットを用意する。More specifically, for example, in the preceding stage of the loop processing for obtaining each point on the free-form surface, the coefficient set of the blending function is calculated based on the knot vector (vector giving the node of the parameter as a sequence of numerical values). Therefore, a coefficient set is prepared.
【0046】この場合に本実施形態では、混ぜ合わせ関
数は、再帰形表現の漸化式(例えばDeBoorCoxの漸化
式)を展開した多項式(パラメータの多項式)で表され
ている。In this case, in this embodiment, the mixing function is represented by a polynomial (a polynomial of parameters) obtained by expanding the recurrence formula of the recursive expression (for example, the recurrence formula of DeBoorCox).
【0047】また、演算された係数セット(係数マトリ
クス、ベースマトリクス)は、自由曲面のオブジェクト
データとして、メインメモリ172のオブジェクトデー
タ記憶部(記憶領域)173に一時記憶される。The calculated coefficient set (coefficient matrix, base matrix) is temporarily stored in the object data storage unit (storage area) 173 of the main memory 172 as the free-form surface object data.
【0048】或いは、自由曲面の各点を求めるループ処
理の前段階において、混ぜ合わせ関数の係数セットを情
報記憶媒体180から読み込んだり、ネットワーク(通
信部196)を介して外部から読み込むことで、混ぜ合
わせ関数の係数セットを用意するようにしてもよい。な
お、この場合も、読み込んだ係数セットを、自由曲面の
オブジェクトデータとして、メインメモリ172のオブ
ジェクトデータ記憶部173上に展開しておくことが望
ましい。Alternatively, in the pre-stage of the loop processing for obtaining each point of the free-form surface, the coefficient set of the blending function is read from the information storage medium 180 or is read from the outside via the network (communication unit 196) to mix. A coefficient set of the matching function may be prepared. In this case as well, it is desirable that the read coefficient set is expanded on the object data storage unit 173 of the main memory 172 as free-form surface object data.
【0049】アフィン変換部134は、例えば操作部1
60から入力される操作データやゲームプログラムなど
に基づいて、自由曲面の制御点に対するアフィン変換を
フレーム単位(各フレーム毎)で行う。The affine transformation unit 134 is, for example, the operation unit 1.
Affine transformation is performed for each control point of the free-form surface on a frame-by-frame basis (on a frame-by-frame basis) based on operation data input from 60, a game program, and the like.
【0050】即ち、本実施形態では、自由曲面で表され
るオブジェクト(モデル)の画像を生成するために、ア
フィン変換(座標変換)、クリッピング処理、或いは光
源計算などの種々のジオメトリ処理(3次元演算)が行
われる。本実施形態では、このジオメトリ処理におい
て、自由曲面の制御点に対して、ローカル座標系からワ
ールド座標系への座標変換、ワールド座標系から視点座
標系への座標変換、視点座標系からスクリーン座標系へ
の座標変換(透視変換)などの種々のアフィン変換が、
フレーム単位で行われる。That is, in this embodiment, in order to generate an image of an object (model) represented by a free-form surface, various geometry processes (three-dimensional) such as affine transformation (coordinate transformation), clipping processing, or light source calculation are performed. Calculation) is performed. In the present embodiment, in this geometry processing, for the control points of the free-form surface, coordinate conversion from the local coordinate system to the world coordinate system, coordinate conversion from the world coordinate system to the viewpoint coordinate system, and the viewpoint coordinate system to the screen coordinate system. Various affine transformations such as coordinate transformation (perspective transformation) to
It is done in frame units.
【0051】曲面(曲線)演算部136は、係数演算
(読み込み)部132により用意された係数セット(法
線算出用の係数セット、差分算出用の係数セットを含
む)と、アフィン変換部134によりアフィン変換され
た制御点(定義点)とに基づいて、パラメータを変化さ
せながら自由曲面の各点を順次求める処理を行う。The curved surface (curve) calculation unit 136 uses the coefficient set (including the coefficient set for normal calculation and the coefficient set for difference calculation) prepared by the coefficient calculation (reading) unit 132 and the affine transformation unit 134. Based on the affine-transformed control points (definition points), processing is performed to sequentially obtain each point on the free-form surface while changing the parameters.
【0052】この場合、用意された係数セット(差分算
出用の係数セット)に基づいて、パラメータの差分に対
する自由曲面の式の差分セット(例えば差分マトリク
ス)を求め、求められた差分セットと、制御点とに基づ
いて、自由曲面の各点を求めるようにしてもよい。In this case, based on the prepared coefficient set (coefficient set for difference calculation), a difference set (for example, a difference matrix) of a free-form surface equation with respect to the parameter difference is obtained, and the obtained difference set and control Each point of the free-form surface may be obtained based on the point.
【0053】なお、この場合、混ぜ合わせ関数の係数セ
ットに基づき得られる差分算出用の係数セットを、自由
曲面の各点を求めるループ処理の前段階の処理において
用意しておき、この用意された差分算出用の係数セット
に基づいて、自由曲面の式の差分セットを求めることが
望ましい。In this case, the coefficient set for difference calculation, which is obtained based on the coefficient set of the blending function, is prepared in the process before the loop process for obtaining each point of the free-form surface, and is prepared. It is desirable to obtain the difference set of the equation of the free-form surface based on the coefficient set for difference calculation.
【0054】法線ベクトル演算部138は、用意された
係数セットに基づいて、自由曲面の各点の法線ベクトル
を求める処理を行う。The normal vector calculation unit 138 performs processing for obtaining the normal vector of each point on the free-form surface based on the prepared coefficient set.
【0055】なお、混ぜ合わせ関数の係数セットに基づ
き得られる法線算出用の係数セットを、自由曲面の各点
を求めるループ処理の前段階の処理において用意してお
き、この用意された法線算出用の係数セットに基づい
て、自由曲面の法線ベクトルを求めることが望ましい。A coefficient set for normal calculation, which is obtained based on the coefficient set of the blending function, is prepared in the process before the loop processing for obtaining each point of the free-form surface, and the prepared normal is prepared. It is desirable to find the normal vector of the free-form surface based on the coefficient set for calculation.
【0056】描画部140は、ジオメトリ処理後のオブ
ジェクトを、フレームバッファ174に描画するための
処理を行う。より具体的には、曲面演算部136により
求められた自由曲面をポリゴンに変換(テセレーショ
ン)して描画する。即ち、自由曲面上の各点が頂点に設
定されたポリゴンデータが生成され、このポリゴンデー
タに基づき描画処理が行われる。The drawing unit 140 performs processing for drawing the object after the geometry processing in the frame buffer 174. More specifically, the free curved surface obtained by the curved surface calculation unit 136 is converted (tessellated) into a polygon and drawn. That is, polygon data in which each point on the free-form surface is set as a vertex is generated, and drawing processing is performed based on this polygon data.
【0057】但し、描画部140が、ポリゴンのみなら
ず自由曲面も描画できる機能を有する場合には、曲面演
算部136により生成された自由曲面をフレームバッフ
ァ174に直接描画するようにしてもよい。However, if the drawing unit 140 has a function of drawing not only polygons but also free-form surfaces, the free-form surfaces generated by the surface calculation unit 136 may be drawn directly in the frame buffer 174.
【0058】なお、本実施形態のゲームシステムは、1
人のプレーヤのみがプレイできるシングルプレーヤモー
ド専用のシステムにしてもよいし、このようなシングル
プレーヤモードのみならず、複数のプレーヤがプレイで
きるマルチプレーヤモードも備えるシステムにしてもよ
い。The game system of this embodiment is
It may be a system dedicated to the single player mode in which only human players can play, or a system having not only such a single player mode but also a multiplayer mode in which a plurality of players can play.
【0059】また複数のプレーヤがプレイする場合に、
これらの複数のプレーヤに提供するゲーム画像やゲーム
音を、1つの端末を用いて生成してもよいし、ネットワ
ーク(伝送ライン、通信回線)などで接続された複数の
端末を用いて生成してもよい。When a plurality of players play,
The game images and game sounds to be provided to the plurality of players may be generated using one terminal, or may be generated using a plurality of terminals connected by a network (transmission line, communication line) or the like. Good.
【0060】2.本実施形態の特徴 2.1 Bスプライン及びNURBS まず、Bスプライン曲線について説明する。2. Features of this embodiment 2.1 B-splines and NURBS First, the B-spline curve will be described.
【0061】4階(3次)のBスプライン曲線は4つの
制御点から生成される。各制御点をQ0、Q1、Q2、Q3
とすると、Bスプライン曲線の式P(t)は、
P(t)=N0,4(t)Q0+N1,4(t)Q1+N2,4(t)Q2+N3,4(t)Q3 …(1)
となる。A fourth-order (third-order) B-spline curve is generated from four control points. Set each control point to Q 0 , Q 1 , Q 2 , Q 3
Then, the formula P (t) of the B-spline curve is P (t) = N 0,4 (t) Q 0 + N 1,4 (t) Q 1 + N 2,4 (t) Q 2 + N 3,4 (t) Q 3 (1)
【0062】式(1)の中のN0,4〜N3,4は、混ぜ合わ
せ関数(Blending Function)と呼ばれ、4階のBスプ
ライン曲線の場合は下式のようになる。N 0,4 to N 3,4 in the equation (1) are called blending functions, and in the case of a B spline curve of the fourth order, the following equation is obtained.
【0063】[0063]
【数1】 [Equation 1]
【0064】混ぜ合わせ関数N0,4〜N3,4は、パラメー
タの節目を数値の列として与えるベクトルであるノット
ベクトルに基づき求められる。そして、ノットベクトル
のノット間隔(ノットベクトルの隣り合う要素間の数値
差)が一定である場合には、ユニフォーム(Uniform)
な自由曲線(自由曲面)と呼ばれ、ノット間隔が一定で
ない場合は、ノンユニフォーム(Non Uniform)な自由
曲線と呼ばれる。The mixing functions N 0,4 to N 3,4 are obtained based on a knot vector which is a vector giving the node of the parameter as a sequence of numerical values. If the knot interval of the knot vector (the numerical difference between adjacent elements of the knot vector) is constant, then a uniform
It is called a free-form curve (free-form surface), and when the knot interval is not constant, it is called a non-uniform free-form curve.
【0065】例えば、制御点数が4個で4階のユニフォ
ームなBスプライン曲線のノットベクトルTは下式のよ
うになる。For example, the knot vector T of a uniform B-spline curve on the fourth floor with four control points is given by the following equation.
【0066】
T=[−3 −2 −1 0 1 2 3 4] …(3)
式(3)では、ノットベクトルの隣り合う要素間の数値
差は常に1となっており、ユニフォームなノットベクト
ルになっている。T = [− 3 −2 −1 0 1 2 3 4] (3) In Expression (3), the numerical difference between adjacent elements of the knot vector is always 1, and the uniform knot vector It has become.
【0067】なお、ノットベクトルの要素数、制御点
数、階数には、(要素数)=(制御点数)+(階数)の
関係式が成り立つ。For the number of elements of the knot vector, the number of control points, and the rank, the relational expression of (number of elements) = (number of control points) + (rank) holds.
【0068】図2(A)に、制御点Q0〜Q3と上式
(3)のノットベクトルに基づき形状が特定されるユニ
フォームなBスプライン曲線の例を示す。Bスプライン
曲線の式P(t)のパラメータtが0から1に変化する
ことで、図2(A)に示すような曲線が描かれる。FIG. 2A shows an example of a uniform B-spline curve whose shape is specified based on the control points Q 0 to Q 3 and the knot vector of the above equation (3). By changing the parameter t of the equation P (t) of the B-spline curve from 0 to 1, a curve as shown in FIG. 2 (A) is drawn.
【0069】さて、Bスプラインの混ぜ合わせ関数は、
下式のような再帰形表現の漸化式(DeBoorCoxの漸化
式)により表すことができる。Now, the mixing function of the B-spline is
It can be expressed by the recurrence formula of the recursive expression (DeBoorCox recurrence formula) as shown below.
【0070】[0070]
【数2】 [Equation 2]
【0071】ここで、ノットベクトルTは一般的に、 T=[t0 t1 t2 … tM+N-1] N:制御点数 M:階数(次数+1) …(5) と表される。Here, the knot vector T is generally expressed as follows: T = [t 0 t 1 t 2 ... T M + N-1 ] N: number of control points M: rank (order +1) (5) .
【0072】そして、混ぜ合わせ関数(基底関数)N
0,M〜Nn,Mと制御点Q0〜Qnより、Bスプライン曲線の
式P(t)は一般的に、
P(t)=N0,M(t)Q0+N1,M(t)Q1+ …+Nn,M(t)Qn …(6)
と表される。The mixing function (base function) N
From 0, M to N n, M and control points Q 0 to Q n , the equation P (t) of the B-spline curve is generally P (t) = N 0, M (t) Q 0 + N 1, M (t) Q 1 + ... + N n, M (t) Q n (6)
【0073】上式(6)から明らかなように、j番目の
制御点Qjは、混ぜ合わせ関数NJ,Mを持つ。そして、N
J,Mは、ノットtjからM(階)区間にまたがる関数にな
る。As is clear from the above equation (6), the j-th control point Q j has a mixing function N J, M. And N
J and M are functions that extend from the knot t j to the M (floor) section.
【0074】図2(B)に、制御点がQ0〜Q4でノット
ベクトルTの要素数が8個の場合のBスプライン曲線の
例を示す。FIG. 2B shows an example of the B-spline curve when the control points are Q 0 to Q 4 and the number of elements of the knot vector T is 8.
【0075】曲線セグメント10は、制御点Q0〜Q3と
ノットベクトルTの要素t0〜t6により形状が特定さ
れ、パラメータtがt3≦t<t4の変域で変化すること
で、曲線セグメント10上の各点が求められる。The shape of the curve segment 10 is specified by the control points Q 0 to Q 3 and the elements t 0 to t 6 of the knot vector T, and the parameter t changes in the range of t 3 ≤t <t 4. , Each point on the curve segment 10 is determined.
【0076】一方、曲線セグメント12は、制御点Q1
〜Q4とノットベクトルTの要素t1〜t7により形状が
特定され、パラメータtがt4≦t<t5の変域で変化す
ることで曲線セグメント12上の各点が求められる。On the other hand, the curve segment 12 has a control point Q 1
To Q 4 and knot vector T by means of the elements t 1 ~t 7 the shape is specified, each point on curve segment 12 is determined by the parameter t varies with the variable domain of t 4 ≦ t <t 5.
【0077】ノンユニフォーム(Non Uniform)で、有
理化(Rational)されたBスプラインが、NURBS
(Non Uniform Rational B-Spline)である。Non-uniform (Rational) rationalized B-splines are NURBS
(Non Uniform Rational B-Spline).
【0078】即ち、NURBSはノンユニフォームであ
るため、上式(5)のノットベクトルTのノット間隔が
一定にならない。従って、ノット間隔の比で曲線(曲
面)の微分係数を補正できるので、曲線の形状を制御す
るのが容易になり、曲線の形状を局所的に変化させるこ
とも可能になる。また、Bスプライン以外の種々の曲線
(ベジェ曲線、エルミート曲線等)も表現できるように
なり、全ての曲線を同一形式で表せるようになる。That is, since NURBS is non-uniform, the knot interval of the knot vector T in the above equation (5) is not constant. Therefore, since the differential coefficient of the curve (curved surface) can be corrected by the ratio of the knot intervals, the shape of the curve can be easily controlled and the shape of the curve can be locally changed. Also, various curves other than B-splines (Bezier curves, Hermitian curves, etc.) can be expressed, and all curves can be expressed in the same format.
【0079】また、NURBSでは、有理化(同次座標
を用いた中心投影)が行われているため、制御点に対す
るウェイト値を設定できる。従って、有利化されていな
いBスプラインでは描くことができない真円なども描く
ことができるようになる。In NURBS, since rationalization (center projection using homogeneous coordinates) is performed, the weight value for the control point can be set. Therefore, it becomes possible to draw a perfect circle or the like that cannot be drawn with an unfavorable B-spline.
【0080】2.2 係数マトリクス(ベースマトリク
ス)
混ぜ合わせ関数の値を求めるために使用される上記のDe
BoorCoxの漸化式(4)は、再帰形表現になっている。
従って、コンピュータに計算させるのには都合が良い。2.2 Coefficient Matrix (Base Matrix) The above De used to find the value of the blending function
BoorCox's recurrence formula (4) is a recursive expression.
Therefore, it is convenient for the computer to calculate.
【0081】しかしながら、その反面、漸化式(4)
は、処理負荷の重い除算処理を多く含むと共に再帰ルー
プのたびに条件判断が必要になる。従って、処理速度の
低下を招くという問題点がある。However, on the other hand, the recurrence formula (4)
Contains a lot of division processing with a heavy processing load, and it is necessary to judge the condition for each recursive loop. Therefore, there is a problem that the processing speed is lowered.
【0082】例えば、1フレーム(1/60秒、1/3
0秒)以内に全ての画像生成を完了するというリアルタ
イム処理が要求されていないCAD/CAMでは、処理
時間に余裕があるため、漸化式(4)を再帰的に解いて
混ぜ合わせ関数の値を求めても、大きな問題は生じな
い。また、CAD/CAMでは、処理時間に十分に余裕
があるため、自由曲面や自由曲線の滑らかさの方を優先
して、混ぜ合わせ関数の次数も10次以上にするのが一
般的である。For example, one frame (1/60 seconds, 1/3)
In CAD / CAM, which does not require real-time processing to complete all image generation within 0 seconds), there is a margin of processing time. Therefore, recurrence equation (4) is recursively solved and the value of the mixing function is calculated. However, there is no big problem. Further, in CAD / CAM, since there is a sufficient processing time, it is general that the degree of smoothing of a free-form surface or a free-form curve is prioritized and the order of the mixing function is set to 10 or more.
【0083】一方、ゲームシステムにおいては、リアル
タイム処理の実現が要求されるため、混ぜ合わせ関数の
値を求める処理の負荷は、極力低いことが望まれる。ま
た、ゲームに登場するオブジェクトは、例えばレーシン
グカーゲームにおける車のように動的に動いている(映
像として表現されている)のが一般的であり、そのオブ
ジェクトを見ているプレーヤの視点も常に動いている。
従って、オブジェクトを表現する自由曲面や自由曲線
は、ある程度の滑らかさを持てばよく、混ぜ合わせ関数
の次数も3次或いは4次程度で十分である。On the other hand, in the game system, real-time processing is required to be realized. Therefore, it is desired that the processing load for obtaining the value of the blending function is as low as possible. In addition, the object appearing in the game is generally moving dynamically (represented as an image) like a car in a racing car game, and the viewpoint of the player watching the object is always moving.
Therefore, the free-form surface or the free-form curve representing the object may have a certain degree of smoothness, and the order of the mixing function may be about the third order or the fourth order.
【0084】本発明者は、以上の点に着目し、漸化式
(4)を敢えて再帰的に解かずに、4階という条件で一
般3次式に展開し、これにより混ぜ合わせ関数の値を高
速に求めることに成功している。The present inventor pays attention to the above points and expands the recurrence equation (4) into a general cubic equation under the condition of the fourth order without recursively solving it. Has succeeded in seeking at high speed.
【0085】このように漸化式(4)を一般3次式に展
開することで、混ぜ合わせ関数は下式のようになる。By thus expanding the recurrence formula (4) into a general cubic formula, the mixing function becomes as shown in the following formula.
【0086】
N0,4=at3+bt2+ct+d
N1,4=et3+ft2+gt+h
N2,4=it3+jt2+kt+l
N3,4=mt3+nt2+ot+p …(7)
例えば、混ぜ合わせ関数N1,4の展開式は下式のように
なる。N 0,4 = at 3 + bt 2 + ct + d N 1,4 = et 3 + ft 2 + gt + h N 2,4 = it 3 + jt 2 + kt + l N 3,4 = mt 3 + nt 2 + ot + p (7) For example, mixing The expansion formula of the matching function N 1,4 is as follows.
【0087】[0087]
【数3】 [Equation 3]
【0088】[0088]
【数4】 [Equation 4]
【0089】上式(9)から明らかなように、ノットベ
クトルの要素t1〜t5の値を代入することで、混ぜ合わ
せ関数N1,4の係数セットe、f、g、hの値を予め求
めておくことができる。As is clear from the above equation (9), the values of the coefficient sets e, f, g and h of the mixing function N 1,4 are substituted by substituting the values of the elements t 1 to t 5 of the knot vector. Can be obtained in advance.
【0090】同様に、混ぜ合わせ関数N0,4、N2,4、N
3,4の係数セットa、b、c、d、i、j、k、l、
m、n、o、pも、ノットベクトルの要素の値を代入す
ることで、予め求めておくことができる。Similarly, the mixing functions N 0,4 , N 2,4 , N
3,4 coefficient set a, b, c, d, i, j, k, l,
The values of m, n, o, and p can be obtained in advance by substituting the values of the elements of the knot vector.
【0091】上式(7)は、The above equation (7) is
【0092】[0092]
【数5】 [Equation 5]
【0093】というようにマトリクスの形で表記でき
る。これにより、混ぜ合わせ関数の値を高速なマトリク
ス演算で求めることができる。It can be expressed in the form of a matrix like this. As a result, the value of the blending function can be obtained by high-speed matrix calculation.
【0094】以降、上式(10)のM1を、係数マトリ
クス(ベースマトリクス。広義には係数セット)と呼ぶ
ことにする。Hereinafter, M 1 in the above equation (10) will be referred to as a coefficient matrix (base matrix; coefficient set in a broad sense).
【0095】この係数マトリクスM1と制御点Q
0(Q0 x、Q0 y、Q0 z)〜Q3(Q3 x、Q3 y、Q3 z)に基
づき、下式にしたがって自由曲線上の各点(Px(t)、P
y(t)、Pz(t))を求めることができる。This coefficient matrix M 1 and control point Q
Based on 0 (Q 0 x , Q 0 y , Q 0 z ) to Q 3 (Q 3 x , Q 3 y , Q 3 z ), each point (P x (t), P
y (t), P z (t)) can be obtained.
【0096】 Px(t)=N0,4(t)Q0 x+N1,4(t)Q1 x+N2,4(t)Q2 x+N3,4(t)Q3 x Py(t)=N0,4(t)Q0 y+N1,4(t)Q1 y+N2,4(t)Q2 y+N3,4(t)Q3 y Pz(t)=N0,4(t)Q0 z+N1,4(t)Q1 z+N2,4(t)Q2 z+N3,4(t)Q3 z …(11)P x (t) = N 0,4 (t) Q 0 x + N 1,4 (t) Q 1 x + N 2,4 (t) Q 2 x + N 3,4 (t) Q 3 x P y (t) = N 0,4 (t) Q 0 y + N 1,4 (t) Q 1 y + N 2,4 (t) Q 2 y + N 3,4 (t) Q 3 y P z (t) = N 0,4 (t) Q 0 z + N 1,4 (t) Q 1 z + N 2,4 (t) Q 2 z + N 3,4 (t) Q 3 z (11)
【0097】2.3 前段階処理での係数マトリクスの
用意
さて、係数マトリクスM1の要素a〜p(係数セット)
は、各制御点に固有なものであり(例えば制御点Q0に
はa〜d、Q1にはe〜h、Q2にはi〜l、Q3にはm
〜p)、ノットベクトルが変わらない限り不変である。2.3 Preparation of Coefficient Matrix in Pre-Processing Elements a to p (coefficient set) of coefficient matrix M 1
Is unique to each control point (for example, a to d for control point Q 0 , e to h for Q 1 , i to 1 for Q 2 , and m for Q 3 ).
~ P), it is invariant unless the knot vector changes.
【0098】そこで本実施形態では、リアルタイム処理
の前段階の処理において、ノットベクトルに基づき係数
マトリクスを予め求めておき(或いは情報記憶媒体から
読み出しておき)、リアルタイム処理時には係数マトリ
クスの演算を行わないようにしている。このようにする
ことで、リアルタイム処理時の負荷を大幅に軽減でき、
処理の高速化を図れる。Therefore, in the present embodiment, the coefficient matrix is obtained in advance (or read from the information storage medium) based on the knot vector in the processing at the stage before the real-time processing, and the coefficient matrix is not calculated during the real-time processing. I am trying. By doing this, the load during real-time processing can be greatly reduced,
The processing speed can be increased.
【0099】より具体的には本実施形態では、図3に示
すように、ゲーム開始後(情報記憶媒体やネットワーク
からのゲームプログラム、オブジェクトデータの読み出
し後)に、ノットベクトルに基づき係数マトリクスが求
められる(ステップS1、S2)。そして、求められた
係数マトリクスと、制御点と、ノットベクトルを含むN
URBSオブジェクトデータが生成される(ステップS
3)。More specifically, in this embodiment, as shown in FIG. 3, after the game is started (after reading the game program and the object data from the information storage medium or the network), the coefficient matrix is obtained based on the knot vector. (Steps S1 and S2). Then, the obtained coefficient matrix, the control point, and N including the knot vector
URBS object data is generated (step S
3).
【0100】なお、このNURBSオブジェクトデータ
は例えば記憶部(RAM)上に展開され、一時記憶され
る。また、ノットベクトルや制御点のデータは情報記憶
媒体(ネットワーク)から読み込まれる。The NURBS object data is expanded on the storage unit (RAM) and temporarily stored, for example. The knot vector and control point data are read from the information storage medium (network).
【0101】各フレームの処理では、操作部からの操作
データやゲームプログラムなどに基づいて、制御点に対
するアフィン変換(視点座標系への座標変換、透視変換
等)が行われる(ステップS4,S5)。そして、アフ
ィン変換後の制御点とNURBSオブジェクトデータが
含む係数マトリクスとに基づいて、パラメータtを変化
させながらNURBS上の各点が順次求められる(ステ
ップS6、S7、S8)。即ち、係数マトリクスM1に
基づいて、上式(10)により混ぜ合わせ関数N0,4、
〜N3,4が求められ、この混ぜ合わせ関数とN0,4、〜N
3,4と制御点Q0〜Q3に基づいて、NURBS上の各点
が求められる。In the processing of each frame, affine transformation (coordinate transformation to the viewpoint coordinate system, perspective transformation, etc.) for the control point is performed based on the operation data from the operation section, the game program, etc. (steps S4, S5). . Then, based on the control points after the affine transformation and the coefficient matrix included in the NURBS object data, each point on the NURBS is sequentially obtained while changing the parameter t (steps S6, S7, S8). That is, based on the coefficient matrix M 1 , the mixing function N 0,4 ,
~ N 3,4 is obtained, and this mixing function and N 0,4 , ~ N
Each point on NURBS is obtained based on 3 , 4 and control points Q 0 to Q 3 .
【0102】次に、求められたNURBS上の各点に基
づいて、NURBSオブジェクトの描画処理が行われる
(ステップS9)。例えばNURBSオブジェクトをポ
リゴンにより描画する場合には、求められた各点がポリ
ゴンの各頂点に設定されたポリゴンデータが生成され、
そのポリゴンデータに基づいてNURBSオブジェクト
が描画される。Next, the drawing process of the NURBS object is performed based on the obtained points on the NURBS (step S9). For example, when a NURBS object is drawn by a polygon, polygon data in which each obtained point is set at each vertex of the polygon is generated,
A NURBS object is drawn based on the polygon data.
【0103】或いは、図4では、ゲーム開始後に、係数
マトリクスや制御点やノットベクトルを含むNURBS
オブジェクトデータが、情報記憶媒体から読み込まれる
(ネットワークからダウンロードされる)。そして、こ
の読み込まれたNURBSオブジェクトデータに基づい
て、図3のステップS4〜S9と同様のフレーム単位の
処理が行われる(ステップS14〜S19)。Alternatively, in FIG. 4, after the game is started, the NURBS including the coefficient matrix, the control points, and the knot vectors is displayed.
Object data is read from the information storage medium (downloaded from the network). Then, based on the read NURBS object data, the processing in frame units similar to steps S4 to S9 of FIG. 3 is performed (steps S14 to S19).
【0104】なお、後述するような法線ベクトルを求め
る場合には、図3のステップS2において係数マトリク
スに基づき法線算出用の係数マトリクスを生成したり、
図4のステップS12において、法線算出用の係数マト
リクスを情報記憶媒体(ネットワーク)から読み込むこ
とが望ましい。このようにすることで、処理負荷を更に
軽減できる。但し、図3のステップS7、図4のステッ
プS17の処理において法線算出用の係数マトリクスを
計算するようにしてもよい。When obtaining a normal vector, which will be described later, in step S2 of FIG. 3, a coefficient matrix for normal calculation is generated based on the coefficient matrix,
In step S12 of FIG. 4, it is desirable to read the coefficient matrix for calculating the normal line from the information storage medium (network). By doing so, the processing load can be further reduced. However, the coefficient matrix for calculating the normal line may be calculated in the processing of step S7 of FIG. 3 and step S17 of FIG.
【0105】また、後述するような差分マトリクス(広
義には差分セット)を用いる場合には、図3のステップ
S2おいて、差分算出用の係数マトリクスを生成した
り、図4のステップS12において、差分算出用の係数
マトリクスを情報記憶媒体(ネットワーク)から読み込
むことが望ましい。このようにすることで、処理負荷を
更に軽減できる。但し、図3のステップS7、図4のス
テップS17の処理において差分算出用の係数マトリク
スを計算するようにしてもよい。When a difference matrix (difference set in a broad sense) as described later is used, a coefficient matrix for difference calculation is generated in step S2 of FIG. 3, or a coefficient matrix for difference calculation is used in step S12 of FIG. It is desirable to read the coefficient matrix for difference calculation from the information storage medium (network). By doing so, the processing load can be further reduced. However, the coefficient matrix for difference calculation may be calculated in the processing of step S7 of FIG. 3 and step S17 of FIG.
【0106】本実施形態によれば、NURBS上の各点
を求めるループ処理の前段階(或いはアフィン変換など
のフレーム単位の処理の前段階)で、係数マトリクスが
用意される。従って、このループ処理(図3のステップ
S6〜S8、図4のステップS16〜S18)の中で係
数マトリクスを求める処理を行わなくて済むようにな
る。このため、各フレームの処理(図3のステップS4
〜S9、図4のステップS14〜S19)を高速に実行
できるようになり、この種のゲームシステムに要求され
るリアルタイム処理を容易に実現できる。この結果、こ
れまでは不可能であると言われていた、NURBSを用
いたゲーム画像のリアルタイム生成の実用化に成功して
いる。According to the present embodiment, the coefficient matrix is prepared in the stage before the loop processing for obtaining each point on the NURBS (or in the stage before the frame unit processing such as affine transformation). Therefore, it becomes unnecessary to perform the processing for obtaining the coefficient matrix in this loop processing (steps S6 to S8 in FIG. 3 and steps S16 to S18 in FIG. 4). Therefore, processing of each frame (step S4 in FIG. 3)
~ S9, steps S14 to S19 in Fig. 4 can be executed at high speed, and the real-time processing required for this type of game system can be easily realized. As a result, the real-time generation of game images using NURBS, which was said to be impossible until now, has been successfully put to practical use.
【0107】特に、本実施形態の手法は、NURBSな
どのノンユニフォームな自由曲面、自由曲線の生成にお
いて高速化を実現したところに進歩性がある。In particular, the method of this embodiment has an inventive step in that it realizes speeding up in the generation of a non-uniform free-form surface or free-form curve such as NURBS.
【0108】即ち、ユニフォームなBスプラインでは、
上式(2)から明らかなように、パラメータtの値が属
する変域に依存せずに常に同じ混ぜ合わせ関数を用いる
ことができる。従って、図3、図4に示すような、係数
マトリクスを予め用意しておく手法を、敢えて採用する
必要性はない。That is, in the uniform B-spline,
As is clear from the above equation (2), the same mixing function can always be used without depending on the domain to which the value of the parameter t belongs. Therefore, there is no need to intentionally adopt the method of preparing the coefficient matrix in advance as shown in FIGS. 3 and 4.
【0109】一方、ノットベクトルのノット間隔が一定
でないノンユニフォームなNURBSでは、パラメータ
tの値が属する変域に応じて、使用する混ぜ合わせ関数
が変化してしまう。このため、リアルタイム処理が要求
されず、処理の高速化に関心が薄いCAD/CAMで
は、混ぜ合わせ関数を求める処理を、図3のステップS
6〜S8や図4のステップS16〜S18のループ処理
の中で行っていた。そして、10次のNURBSでも生
成できるほど処理時間に余裕があるCAD/CAMで
は、上記のループ処理の中で混ぜ合わせ関数を求めて
も、大きな問題にはならなかった。On the other hand, in a non-uniform NURBS in which the knot intervals of knot vectors are not constant, the mixing function to be used changes depending on the range to which the value of the parameter t belongs. For this reason, real-time processing is not required, and CAD / CAM, which has little interest in speeding up processing, performs processing for obtaining a blending function in step S in FIG.
6 to S8 and the loop processing of steps S16 to S18 of FIG. In CAD / CAM, which has a processing time enough to generate even a 10th-order NURBS, obtaining a mixing function in the above loop processing did not cause a big problem.
【0110】ところが、CAD/CAMと異なりゲーム
システムにおいては、図3のステップS6〜S8や図4
のステップS16〜S18のループ処理の中で混ぜ合わ
せ関数の計算が行われてしまうと、リアルタイム処理の
実現が困難になる。However, unlike CAD / CAM, in the game system, steps S6 to S8 in FIG. 3 and FIG.
If the mixing function is calculated in the loop processing of steps S16 to S18, realization of real-time processing becomes difficult.
【0111】そこで本発明者は、NURBSでは、混ぜ
合わせ関数が各制御点に対して固有なものになる点に着
目した。即ち、NURBSでは、混ぜ合わせ関数が各制
御点に固有になるため、ループ処理の前段階で係数マト
リクスを予め用意しておいても、その係数を各制御点に
容易に関連づけることができる。従って、係数マトリク
スの生成処理をループ処理の中から外しても、問題は生
じない。そして、係数マトリクスの生成処理をループ処
理の中から外すことで、処理を大幅に高速化できる。Therefore, the present inventor has noted that in NURBS, the blending function is unique to each control point. That is, in NURBS, since the blending function is unique to each control point, even if a coefficient matrix is prepared in advance before the loop processing, the coefficient can be easily associated with each control point. Therefore, even if the coefficient matrix generation process is removed from the loop process, no problem occurs. Then, by removing the coefficient matrix generation processing from the loop processing, the processing can be significantly speeded up.
【0112】このようにして本実施形態では、曲面、曲
線の形状の局所的な制御が容易であり、あらゆる種類の
曲面、曲線を表現できる反面、混ぜ合わせ関数が複雑に
なってしまうノンユニフォームなNURBSを用いなが
らも、ゲーム画像のリアルタイム生成に成功している。As described above, in the present embodiment, it is easy to locally control the shapes of the curved surface and the curved line, and although all kinds of curved surfaces and curved lines can be expressed, the blending function becomes non-uniform. Using NURBS, it succeeded in real-time generation of game images.
【0113】2.4 有理化
同次座標を用いた中心投影を行い、制御点Q(x,y,
z)にウェイト値wを持たせることができるのが有理化
である。2.4 Centralized projection using rationalized homogeneous coordinates, and control points Q (x, y,
It is rationalization that the weight value w can be added to z).
【0114】例えば上式(11)のx成分の式を有理化する
と、下式のようになる。For example, if the expression of the x component of the above expression (11) is rationalized, the following expression is obtained.
【0115】[0115]
【数6】 [Equation 6]
【0116】ノットベクトルをノンユニフォームにし、
有理化された式を用いることで、BスプラインをNUR
BSにすることができる。Make the knot vector non-uniform,
NUR the B-spline by using the rationalized formula
Can be a BS.
【0117】例えば、上式(11)を、上式(10)を用いてマ
トリクスの形で表記すると下式のようになる。For example, if the above equation (11) is expressed in the form of a matrix using the above equation (10), the following equation is obtained.
【0118】[0118]
【数7】 [Equation 7]
【0119】そして、上式(13)を有利化すると下式のよ
うになる。When the above equation (13) is made advantageous, the following equation is obtained.
【0120】[0120]
【数8】 [Equation 8]
【0121】有理化を行った場合には、上式(14)に基づ
き各要素Px(t)Pw(t)、Py(t)Pw(t)、P
z(t)Pw(t)を求めた後に、これらの各要素をPw
(t)で除算する処理が必要になる。When rationalization is performed, each element P x (t) P w (t), P y (t) P w (t), P is calculated based on the above equation (14).
After obtaining z (t) P w (t), P w
A process of dividing by (t) is required.
【0122】但し、有理化が特に必要でない場合には、
無理に有利化を行わなくてもよい。有理化を行わないこ
とで、真円などを表現できなくなる反面、Pw(t)に
よる除算処理等が不要になるため、処理を高速化でき
る。However, when rationalization is not particularly necessary,
It is not necessary to force the advantage. By not performing rationalization, it becomes impossible to represent a perfect circle, but on the other hand, division processing by P w (t) and the like are not necessary, so that the processing can be speeded up.
【0123】このように、本実施形態が適用される自由
曲面、自由曲線は、少なくともノンユニフォームなもの
であれば十分であり、有利化が行われるNURBSであ
る必要はない。また、Bスプライン以外の自由曲面、自
由曲線であってもよい。As described above, it is sufficient that the free-form surface and the free-form curve to which this embodiment is applied are at least non-uniform, and it is not necessary to use NURBS for which an advantage is obtained. Further, it may be a free curved surface or a free curve other than the B spline.
【0124】2.5 曲面化について
以上は、説明を簡単にするために、曲線の場合の計算方
法について主に説明した。曲面に拡張する場合には、曲
線の場合と同様の処理を、パラメータu、vの各成分に
対して行えばよい。2.5 Curved Surface In the above, the calculation method in the case of a curve was mainly described for the sake of simplicity. When expanding to a curved surface, the same processing as in the case of a curved surface may be performed on each component of the parameters u and v.
【0125】例えば、パラメータu、vの各成分につい
ての混ぜ合わせ関数は下式のようになる。For example, the mixing function for each component of the parameters u and v is as follows.
【0126】[0126]
【数9】 [Equation 9]
【0127】[0127]
【数10】 [Equation 10]
【0128】上式(15)、(16)において、Muはu成分に
ついての係数(ベース)マトリクスであり、Mvはv成
分についての係数マトリクスである。In the above equations (15) and (16), Mu is a coefficient (base) matrix for the u component, and Mv is a coefficient matrix for the v component.
【0129】上式(15)、(16)から、曲面上の点であるP
uv(u,v)のx成分であるPxuv(u,v)は下
式のように求められる。From the above equations (15) and (16), P which is a point on the curved surface
P x uv (u, v), which is the x component of uv (u, v), is calculated by the following equation.
【0130】[0130]
【数11】 [Equation 11]
【0131】そして、有利化を行った場合(NURB
S)には、曲線の場合の有理化と同様に、Pxuv
(u,v)Pwuv(u,v)は下式のように求められ
る。Then, in the case of making an advantage (NURB
S) has P x uv, similar to the rationalization in the case of curves.
(U, v) P w uv (u, v) is calculated by the following equation.
【0132】[0132]
【数12】 [Equation 12]
【0133】曲面上の各点を求める処理は、まとめると
下記のようになる。
(処理A)ノットベクトルに基づいて、各制御点に対する
混ぜ合わせ関数を求めるための係数マトリクスMu、M
vを求める。
(処理B)制御点をアフィン変換する。
(処理C)係数マトリクスMu、Mvと、曲面の分割数に
応じた値に設定されるパラメータu、vに基づいて、混
ぜ合わせ関数Nu、Nvを求める。これらの混ぜ合わせ
関数は各制御点に固有なものであるが、分割数がアクテ
ィブに変化する場合には、分割数が変化するたびに混ぜ
合わせ関数を求め直す必要がある。
(処理D)パラメータu、vに基づき、Puv(u,v)
PWuv(u,v)を求める。
(処理E)使用する制御点セット(制御点の組み合わせ)
が変化しない場合には、パラメータu、vを順次変化さ
せながら、処理Dを繰り返す。
(処理F)使用する制御点セットが変化した場合には、処
理Cに戻る。The processing for obtaining each point on the curved surface is summarized as follows. (Processing A) Coefficient matrices Mu and M for obtaining a blending function for each control point based on the knot vector
Find v. (Process B) The control points are affine transformed. (Processing C) Mixing functions Nu and Nv are obtained based on the coefficient matrices Mu and Mv and the parameters u and v set to values according to the number of divisions of the curved surface. These blending functions are unique to each control point, but when the division number actively changes, it is necessary to re-obtain the blending function each time the division number changes. (Processing D) Puv (u, v) based on the parameters u and v
Find P W uv (u, v). (Process E) Control point set used (combination of control points)
If does not change, the process D is repeated while sequentially changing the parameters u and v. (Processing F) When the control point set used is changed, the process returns to the process C.
【0134】図5に、本実施形態の手法により生成され
た曲面パッチ20の例を示す。FIG. 5 shows an example of the curved surface patch 20 generated by the method of this embodiment.
【0135】ここで、u方向のノットベクトルをU[u
0,u1,u2…u6,u7…]とし、v方向のノットベク
トルをV[v0,v1,v2…v6,v7…]とする。する
と、曲面パッチ20の生成に使用される係数マトリクス
Mu、Mvは、各々、ノットベクトルの要素u0〜u6、
v0〜v6に基づき求められる。Here, the knot vector in the u direction is U [u
0 , u 1 , u 2 ... U 6 , u 7 ...], and the k-vector in the v direction is V [v 0 , v 1 , v 2 ... V 6 , v 7 ...]. Then, the coefficient matrices Mu and Mv used to generate the surface patch 20 are knot vector elements u 0 to u 6 , respectively.
It is calculated based on v 0 to v 6 .
【0136】そして、上式(18)から明らかなように、曲
面パッチ20上の各点は、制御点Q 00〜Q33と混ぜ合わ
せ関数Nu0,4〜Nu3,4、Nv0,4〜Nv3,4に基づき求
められる。この場合、パラメータuの変域はu3≦u<
u4となり、パラメータvの変域はv3≦v<v4にな
る。Then, as is apparent from the above equation (18),
Each point on the surface patch 20 is a control point Q. 00~ Q33Mixed with
Function Nu0,4~ Nu3,4, Nv0,4~ Nv3,4Based on
Can be In this case, the domain of the parameter u is u3≤u <
uFourAnd the domain of parameter v is v3≤v <vFourIn
It
【0137】一方、曲面パッチ22を生成する場合に
は、使用する制御点のセットが、Q00〜Q33からQ01〜
Q34に変わる。そして、曲面パッチ22上の各点は、制
御点Q 01〜Q34と混ぜ合わせ関数Nu1,4〜Nu4,4、N
v0,4〜Nv3,4に基づき求められる。この場合、パラメ
ータuの変域はu4≦u<u5となり、パラメータvの変
域はv3≦v<v4になる。On the other hand, when the curved surface patch 22 is generated,
Is the set of control points used is Q00~ Q33To Q01~
Q34Change to. Then, each point on the curved surface patch 22 is
Point Q 01~ Q34And the mixing function Nu1,4~ Nu4,4, N
v0,4~ Nv3,4It is required based on. In this case, the parameter
The range of data u is uFour≤u <uFiveAnd the change of parameter v
Area is v3≤v <vFourbecome.
【0138】本実施形態により生成された曲面パッチ2
0上の各点は、ポリゴンの頂点に設定され、これらの頂
点により構成されるポリゴンが画面上に表示されること
になる。Surface patch 2 generated according to this embodiment
The points on 0 are set to the vertices of the polygon, and the polygon constituted by these vertices is displayed on the screen.
【0139】図6、図7、図8に、本実施形態により生
成されたNURBSオブジェクト(ワイヤーフレーム表
示)の画像の例を示す。図6は分割数が少ない場合、図
7は分割数が中ぐらいの場合、図8が分割数が多い場合
の例である。FIGS. 6, 7, and 8 show examples of images of NURBS objects (wire frame display) generated by this embodiment. 6 shows an example when the number of divisions is small, FIG. 7 shows an example when the number of divisions is medium, and FIG. 8 shows an example when the number of divisions is large.
【0140】2.6 法線ベクトルの算出
さて、オブジェクトのシェーディング処理やヒットチェ
ック処理を行うためには、法線ベクトルが必要になる。
以下、NURBSの場合の法線ベクトルの算出手法につ
いて説明する。2.6 Calculation of Normal Vector Now, in order to perform the shading process and the hit check process of the object, the normal vector is required.
Hereinafter, a method for calculating the normal vector in the case of NURBS will be described.
【0141】通常の法線ベクトル算出手法では、図9に
示すように、頂点VXを共有しているポリゴンPL0〜
PL3の法線ベクトルN0〜N3を求める。そして、こ
れらの法線ベクトルN0〜N3を合成することで、頂点
VXの法線ベクトルNを求める。In the normal normal vector calculation method, as shown in FIG. 9, the polygons PL0 to PL0 sharing the vertex VX are shared.
The normal vectors N0 to N3 of PL3 are obtained. Then, the normal vector N of the vertex VX is obtained by combining these normal vectors N0 to N3.
【0142】本実施形態のNURBSでは、3次式で各
頂点を求めている。従って、u方向、v方向での微分係
数(u方向、v方向での接線)に基づき、法線ベクトル
を求めることが可能である。In the NURBS of this embodiment, each vertex is found by a cubic expression. Therefore, it is possible to obtain the normal vector based on the differential coefficients in the u direction and the v direction (tangential lines in the u direction and the v direction).
【0143】3次の曲線の式P(t)は下式のようにな
る。The equation P (t) of the cubic curve is as follows.
【0144】[0144]
【数13】 [Equation 13]
【0145】このP(t)をパラメータtで微分すると
下式のようになるWhen this P (t) is differentiated by the parameter t, the following equation is obtained.
【0146】[0146]
【数14】 [Equation 14]
【0147】これにより、曲線の接線(傾き)を得るこ
とができる。This makes it possible to obtain the tangent line (slope) of the curve.
【0148】一方、3次の曲面の式は一般的には下式の
ように表せる。On the other hand, the expression of the cubic curved surface can be generally expressed as the following expression.
【0149】
Puv(u,v)
=Av3(au3+bu2+cu+d)+Bv2(eu3+fu2+gu+h
)+Cv(iu3+ju2+ku+l)+D(mu3+nu2+ou+p) …(21)
上式をパラメータu、vで微分(偏微分)すると、下式
のようになる。[0149] Puv (u, v) = Av3 (au3 + bu2 + cu + d) + Bv2 (eu3 + fu2 + gu + h) + Cv differentiated by (iu 3 + ju 2 + ku + l) + D (mu 3 + nu 2 + ou + p) ... (21) the above equation parameters u, v (partial differential ) Then, it becomes like the following formula.
【0150】[0150]
【数15】 [Equation 15]
【0151】これにより、曲面のu方向、v方向での接
線(傾き)を得ることができる。This makes it possible to obtain the tangent line (inclination) of the curved surface in the u and v directions.
【0152】上式(22)から明らかなように、パラメータ
u、vに対する混ぜ合わせ関数の微分係数は下式のよう
になる。As is clear from the above equation (22), the differential coefficient of the mixing function with respect to the parameters u and v is as follows.
【0153】[0153]
【数16】 [Equation 16]
【0154】[0154]
【数17】 [Equation 17]
【0155】なお、上式(23)、(24)の中の法線算出用係
数マトリクス(係数マトリクスと微分係数マトリクスを
乗算することで得られるマトリクス)は、自由曲面上の
各点を求める処理の前段階において用意しておくことが
望ましい(図3のステップS2、図4のステップS12
参照)。The coefficient matrix for normal calculation (the matrix obtained by multiplying the coefficient matrix and the differential coefficient matrix) in the above equations (23) and (24) is a process for obtaining each point on the free-form surface. It is desirable to prepare in the previous stage (step S2 of FIG. 3, step S12 of FIG. 4).
reference).
【0156】上式(23)、(24)で得られた混ぜ合わせ関数
の微分係数に基づいて、図10に示すような、自由曲面
のu方向の接線(傾き)ベクトルVECU、v方向の接
線(傾き)ベクトルVECVを求めることができる。Based on the differential coefficient of the mixing function obtained by the above equations (23) and (24), the tangent line (tilt) vector VECU of the free curved surface in the u direction and the tangent line of the v direction as shown in FIG. The (slope) vector VECV can be obtained.
【0157】例えば、u方向の接線ベクトルVECUの
x成分は下式のようになる。For example, the x component of the tangent vector VECU in the u direction is given by the following equation.
【0158】[0158]
【数18】 [Equation 18]
【0159】また、v方向の接線ベクトルVECVのx
成分は下式のようになる。In addition, x of the tangent vector VECV in the v direction
The components are as shown below.
【0160】[0160]
【数19】 [Formula 19]
【0161】なお、上式(25)、(26)は有理化を行わない
場合の式であるが、有理化を行う場合も同様にして求め
ることができる。The above equations (25) and (26) are equations when rationalization is not performed, but can be similarly obtained when rationalization is performed.
【0162】そして、図10に示すように、これらのベ
クトルVECU、VECVの外積をとることで、頂点V
Xでの法線ベクトルNを求めることができる。Then, as shown in FIG. 10, by taking the outer product of these vectors VECU and VECV, the vertex V
The normal vector N at X can be determined.
【0163】この法線ベクトルNを用いることで、自由
曲面で構成されたオブジェクトのシェーディング処理、
ヒットチェック処理、面の裏表の判定処理等が可能にな
る。By using this normal vector N, shading processing of an object composed of a free-form surface,
It becomes possible to perform hit check processing, front / back surface determination processing, and the like.
【0164】なお、自由曲線の場合には、求められた接
線(傾き)ベクトルに対して直角なベクトルを求めるこ
とで、法線ベクトルを得ることができる。In the case of a free curve, a normal vector can be obtained by obtaining a vector that is orthogonal to the obtained tangent (slope) vector.
【0165】2.7 差分マトリクスによる解法
差分マトリクスを利用することで、自由曲面、自由曲線
の生成処理を更に高速化できる。2.7 Solution Method Using Difference Matrix By using the difference matrix, the free curved surface and free curve generation processing can be further speeded up.
【0166】例えば3次式P(t)=At3+Bt2+C
t+Dに対して、パラメータtの差分△t、2△t、3
△t、4△tを代入すると、下式のようになる。For example, a cubic expression P (t) = At 3 + Bt 2 + C
The difference Δt, 2Δt, 3 of the parameter t with respect to t + D.
Substituting Δt and 4Δt gives the following equation.
【0167】
P0=P(0)=D
P1=P(Δt)=AΔt3+BΔt2+CΔt+D
P2=P(2Δt)=8AΔt3+4BΔt2+2CΔt+D
P3=P(3Δt)=27AΔt3+9BΔt2+3CΔt+D
P4=P(4Δt)=64AΔt3+16BΔt2+4CΔt+D …(27)
上式(27)より、パラメータtの差分△tに対する式P
(t)の1階差分として下式が得られる。[0167] P 0 = P (0) = D P 1 = P (Δt) = AΔt 3 + BΔt 2 + CΔt + D P 2 = P (2Δt) = 8AΔt 3 + 4BΔt 2 + 2CΔt + D P 3 = P (3Δt) = 27AΔt 3 + 9BΔt 2 + 3CΔt + D P 4 = P (4Δt) = 64AΔt 3 + 16BΔt 2 + 4CΔt + D (27) From the above formula (27), the formula P for the difference Δt of the parameter t
The following equation is obtained as the first-order difference of (t).
【0168】
ΔP0=P1−P0=AΔt3+BΔt2+CΔt
ΔP1=P2−P1=7AΔt3+3BΔt2+CΔt
ΔP2=P3−P2=19AΔt3+5BΔt2+CΔt
ΔP3=P4−P3=37AΔt3+7BΔt2+CΔt …(28)
また、パラメータtの差分△tに対する式P(t)の2
階差分として下式が得られる。ΔP 0 = P 1 −P 0 = AΔt 3 + BΔt 2 + CΔt ΔP 1 = P 2 −P 1 = 7A Δt 3 + 3B Δt 2 + CΔt ΔP 2 = P 3 −P 2 = 19A Δt 3 + 5B Δt 2 + CΔt ΔP 3 = P 4 -P 3 = 37AΔt 3 + 7BΔt 2 + CΔt ... (28) in addition, 2 of the formula P (t) with respect to the difference △ t of the parameter t
The following equation is obtained as the floor difference.
【0169】
Δ2P0=ΔP1−ΔP0=6AΔt3+2BΔt2
Δ2P1=ΔP2−ΔP1=12AΔt3+2BΔt2
Δ2P2=ΔP3−ΔP2=18AΔt3+2BΔt2 …(29)
また、パラメータtの差分△tに対する式P(t)の3
階差分として下式が得られる。Δ 2 P 0 = ΔP 1 −ΔP 0 = 6A Δt 3 + 2B Δt 2 Δ 2 P 1 = ΔP 2 −ΔP 1 = 12A Δt 3 + 2B Δt 2 Δ 2 P 2 = ΔP 3 −ΔP 2 = 18A Δt 3 + 2BΔt 2 29) In addition, 3 of the equation P (t) for the difference Δt of the parameter t
The following equation is obtained as the floor difference.
【0170】 Δ3P0=Δ2P1−Δ2P0=6AΔt3 Δ3P1=Δ2P2−Δ2P1=6AΔt3 …(30) 上式(27)〜(30)より、 P0=D ΔP0=AΔt3+BΔt2+CΔt Δ2P0=6AΔt3+2BΔt2 Δ3P0=6AΔt3 …(31) となる。Δ 3 P 0 = Δ 2 P 1 −Δ 2 P 0 = 6A Δt 3 Δ 3 P 1 = Δ 2 P 2 −Δ 2 P 1 = 6A Δt 3 (30) The above equations (27) to (30) Therefore, P 0 = D ΔP 0 = AΔt 3 + BΔt 2 + C Δt Δ 2 P 0 = 6A Δt 3 + 2B Δt 2 Δ 3 P 0 = 6AΔt 3 (31)
【0171】上式(31)をマトリクスの形で表記すると下
式のようになる。The above equation (31) can be expressed in the form of a matrix as shown below.
【0172】[0172]
【数20】 [Equation 20]
【0173】ここで、
P1=P0+ΔP0
ΔP1=ΔP0−Δ2P0
Δ2P1=Δ2P0+Δ3P0
Δ3P1=Δ3P0 …(33)
が成り立つ。従って、差分△tに対する式P(t)の差
分の漸化式は下式のようになる。Here, P 1 = P 0 + ΔP 0 ΔP 1 = ΔP 0 −Δ 2 P 0 Δ 2 P 1 = Δ 2 P 0 + Δ 3 P 0 Δ 3 P 1 = Δ 3 P 0 (33) It holds. Therefore, the recurrence formula of the difference of the formula P (t) with respect to the difference Δt is as follows.
【0174】
Pn+1=Pn+ΔPn
ΔPn+1=ΔPn−Δ2Pn
Δ2Pn+1=Δ2Pn+Δ3Pn
Δ3Pn+1=Δ3Pn …(34)
以上に説明した差分の解き方を自由曲面の場合に応用し
てみる。P n + 1 = P n + ΔP n ΔP n + 1 = ΔP n −Δ 2 P n Δ 2 P n + 1 = Δ 2 P n + Δ 3 P n Δ 3 P n + 1 = Δ 3 P n ... (34) Apply the above-mentioned method of solving the difference to the case of a free-form surface.
【0175】例えば、自由曲面の一般式として下式を考
える。For example, consider the following equation as a general equation for a free-form surface.
【0176】[0176]
【数21】 [Equation 21]
【0177】上式(35)のu3、u2、u、1を要素とする
ベクトルを、上式(32)の右辺のマトリクス(パラメータ
の差分を要素とするマトリクス)に置き換えると、下式
のようになる。When the vector having u 3 , u 2 , u and 1 in the above equation (35) is replaced with the matrix on the right side of the above equation (32) (the matrix having the parameter difference as an element), the following equation is obtained. become that way.
【0178】[0178]
【数22】 [Equation 22]
【0179】同様に、上式(36)のv3、v2、v、1を要
素とするベクトルを、上式(32)の右辺のマトリクスを転
置したマトリクスに置き換えると、下式のようになる。Similarly, when the vector having v 3 , v 2 , v 1, in the above equation (36) as an element is replaced with the transposed matrix of the matrix on the right side of the above equation (32), the following equation is obtained. Become.
【0180】[0180]
【数23】 [Equation 23]
【0181】なお、Pxuv(u,v)は単にPxと表記
している。P x uv (u, v) is simply expressed as P x .
【0182】上式(37)の一般式から、パラメータu、v
の差分に対する自由曲面の式の差分マトリクス(パラメ
ータの差分に対する自由曲面の式の差分を要素とするマ
トリクス)は、制御点を用いて実際には下式のように計
算できることになる。From the general expression of the above expression (37), the parameters u and v
The difference matrix of the equation of the free-form surface for the difference of (the matrix having the difference of the equation of the free-form surface for the difference of the parameter as an element) can be actually calculated by the following equation using the control points.
【0183】[0183]
【数24】 [Equation 24]
【0184】なお、上式(38)の中の差分算出用係数マト
リクス(係数マトリクスと、パラメータの差分を要素と
するマトリクスを乗算することで得られるマトリクス)
は、自由曲面上の各点を求める処理の前段階において用
意しておくことが望ましい(図3のステップS2、図4
のステップS12参照)。また、上式(38)において
「T」はマトリクスの転置を意味する。The difference calculation coefficient matrix in the above equation (38) (the matrix obtained by multiplying the coefficient matrix by the matrix having the parameter difference as an element)
Is preferably prepared before the process of obtaining each point on the free-form surface (step S2 in FIG. 3, FIG. 4).
Step S12). Further, in the above formula (38), “T” means transposition of the matrix.
【0185】自由曲面上の各点は、差分マトリクスの要
素の加算処理により得ることができる。Each point on the free-form surface can be obtained by adding the elements of the difference matrix.
【0186】即ち、まず、差分マトリクスの1行1列目
の要素であるPXが、自由曲面(曲面パッチ)上におけ
る、u方向の1行目の1番目の点P00(図11(B)参
照)になる。That is, first, P X , which is the element in the 1st row and 1st column of the difference matrix, is the first point P 00 in the 1st row in the u direction on the free-form surface (curved surface patch) (see FIG. 11 (B ) See).
【0187】次に、図11(A)のE1に示すように、
差分マトリクスの1行目の各要素を、その左隣の列の各
要素に加算する処理を行う。これにより得られた1行1
列目の要素PX+△uPxが、u方向の1行目の2番目の
点P01(図11(B)参照)になる。Next, as indicated by E1 in FIG.
A process of adding each element in the first row of the difference matrix to each element in the column adjacent to the left is performed. 1 line 1 obtained by this
The element P X + ΔuP x in the column becomes the second point P 01 (see FIG. 11B) in the first row in the u direction.
【0188】次に、E2に示すような加算処理を行い、
これにより得られた1行1列目の要素PX+2△uPx+
△2uPxが、u方向の1行目の3番目の点P02になる。Then, addition processing as shown in E2 is performed,
The element P X + 2ΔuP x + in the 1st row and 1st column obtained by this
Δ 2 uP x becomes the third point P 02 in the first row in the u direction.
【0189】次に、E3に示すような加算処理を行い、
これにより得られた1行1列目の要素PX+3△uPx+
3△2uPx+△3uPxが、u方向の1行目の4番目の点
P03になる。Then, addition processing as shown in E3 is performed,
The element P X + 3ΔuP x + of the 1st row and 1st column obtained by this
3Δ 2 uP x + Δ 3 uP x becomes the fourth point P 03 of the first row in the u direction.
【0190】以上のようにして、自由曲面(曲面パッ
チ)上のu方向の1行目の各点(頂点)P00、P01、P
02、P03を求める。そして、この計算結果は、上式の漸
化式(34)に合致したものになっている。As described above, each point (vertex) P 00 , P 01 , P on the first line in the u direction on the free-form surface (curved surface patch).
02 and P 03 are requested. The result of this calculation agrees with the recurrence formula (34).
【0191】次に、図12(A)に示すようなv方向の
シフトアップを行う。即ち、元の差分マトリクスの各列
の要素を、その上の行の各要素に加算する処理を行う。
そして、得られた差分マトリクスの1行目の要素(図1
2(B)のF1)に対して図11(A)と同様の加算処
理を行い、自由曲面上のu方向の2行目の各点P10、P
11、P12、P13を求める。Next, as shown in FIG. 12A, shift up in the v direction is performed. That is, the process of adding the element in each column of the original difference matrix to each element in the row above it is performed.
Then, the element in the first row of the obtained difference matrix (see FIG.
The addition processing similar to that of FIG. 11A is performed on F1) of 2 (B), and points P 10 and P on the second line in the u direction on the free-form surface are obtained.
Find 11 , P 12 , and P 13 .
【0192】次に、v方向のシフトアップを行い、得ら
れた差分マトリクスの1行目の要素に対して図11
(A)と同様の加算処理を行い、自由曲面上のu方向の
3行目の各点P20、P21、P22、P23を求める。Next, shift up in the v direction is performed, and the elements in the first row of the obtained difference matrix are shown in FIG.
The same addition process as in (A) is performed to obtain the points P 20 , P 21 , P 22 , and P 23 on the third line in the u direction on the free-form surface.
【0193】次に、v方向のシフトアップを更に行い、
得られた差分マトリクスの1行目の要素に対して図11
(A)と同様の加算処理を行い、自由曲面上のu方向の
4行目の各点P30、P31、P32、P33を求める。Then, the v direction is further shifted up,
For the elements in the first row of the obtained difference matrix, FIG.
The same addition processing as in (A) is performed to obtain the points P 30 , P 31 , P 32 , and P 33 on the fourth line in the u direction on the free-form surface.
【0194】以上のように、差分マトリクスを用いるこ
とで、自由曲面上の各点を加算処理だけで求めることが
できるようになる。これにより、処理負荷を大幅に軽減
できる。As described above, by using the difference matrix, each point on the free-form surface can be obtained only by the addition process. This can significantly reduce the processing load.
【0195】3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図13〜図
17のフローチャートを用いて説明する。3. Processing of this Embodiment Next, a detailed example of the processing of this embodiment will be described with reference to the flowcharts of FIGS. 13 to 17.
【0196】図13は、NURBS上の各点を求める処
理の前段階で行われる、NURBSオブジェクトデータ
の生成処理に関するフローチャートである。FIG. 13 is a flowchart relating to the NURBS object data generation process which is performed in the preceding stage of the process for obtaining each point on the NURBS.
【0197】まず、NURBSの式の階数を4(3次)
に設定する(ステップS20)。First, the rank of the NURBS equation is set to 4 (third order).
Is set (step S20).
【0198】次に、ノットベクトルに基づいて係数マト
リクスを求める(ステップS21)。即ち、例えば前述
した式(9)に、ノットベクトルの各要素の値を代入す
ることで、混ぜ合わせ関数の係数を要素とする係数マト
リクス(式(10)、(15)、(16))を求める。Next, a coefficient matrix is obtained based on the knot vector (step S21). That is, for example, by substituting the values of the respective elements of the knot vector into the above-mentioned equation (9), a coefficient matrix (equations (10), (15), (16)) having the coefficients of the mixing function as elements is obtained. Ask.
【0199】なお、差分マトリクスを用いてNURBS
上の各点を求める場合には、得られた係数マトリクス
に、パラメータの差分を要素とするマトリクスを乗算す
ることで、式(38)に示す差分算出用の係数マトリクスを
求めておく(ステップS22)。Note that NURBS is calculated using the difference matrix.
When obtaining the above points, the obtained coefficient matrix is multiplied by a matrix having the parameter difference as an element to obtain the coefficient matrix for calculating the difference shown in Expression (38) (step S22). ).
【0200】次に、法線算出用の係数マトリクスを求め
る(ステップS23)。Next, the coefficient matrix for calculating the normal line is obtained (step S23).
【0201】そして、以上のようにして得られた係数マ
トリクス(差分算出用、法線算出用)と、ノットベクト
ルと、制御点のデータに基づいて、NURBSオブジェ
クトデータを生成する(ステップS24)。Then, NURBS object data is generated based on the coefficient matrix (for difference calculation, normal calculation), knot vector, and control point data obtained as described above (step S24).
【0202】例えば図18(A)では、NURBSの制
御点としてQ00〜Q55が、u方向、v方向のノットベク
トルとしてU[u0,u1…u9]、V[v0、v1…v9]
が用意されている。For example, in FIG. 18A, Q 00 to Q 55 are control points of NURBS, and U [u 0 , u 1 ... U 9 ] and V [v 0 , v are knot vectors in the u and v directions. 1 … v 9 ]
Is prepared.
【0203】この場合に、係数マトリクスMu0、Mu
1、Mu2は、各々、制御点Q00〜Q53、Q01〜Q54、
Q02〜Q55に固有のものとなり、これらの制御点を用い
てNURBS上の各点を求める際に使用されることにな
る。In this case, the coefficient matrices Mu0, Mu
1 and Mu2 are control points Q 00 to Q 53 , Q 01 to Q 54 , respectively.
It is unique to Q 02 to Q 55 and will be used when finding each point on the NURBS using these control points.
【0204】同様に、係数マトリクスMv0、Mv1、
Mv2は、各々、制御点Q00〜Q35、Q10〜Q45、Q20
〜Q55に固有のものとなり、これらの制御点を用いてN
URBS上の各点を求める際に使用されることになる。Similarly, coefficient matrices Mv0, Mv1,
Mv2, respectively, the control points Q 00 ~Q 35, Q 10 ~Q 45, Q 20
~ Q 55 specific, using these control points N
It will be used in determining each point on the URBS.
【0205】ステップS24で生成されるNURBSオ
ブジェクトデータのデータ構造は、例えば図18(B)
のようになり、制御点Q00〜Q55、係数マトリクスMu
0〜Mu2、Mv0〜Mv2、ノットベクトルU
[u0,u1…u9]、V[v0、v1…v9]などのデータ
を含む。The data structure of the NURBS object data generated in step S24 is, for example, FIG. 18 (B).
And control points Q 00 to Q 55 , coefficient matrix Mu
0-Mu2, Mv0-Mv2, knot vector U
It includes data such as [u 0 , u 1 ... U 9 ] and V [v 0 , v 1 ... V 9 ].
【0206】なお、係数マトリクス間で共通するマトリ
クス要素については、重複して別々に持たないようにし
て、NURBSオブジェクトデータを圧縮して記憶する
ようにしてもよい。The matrix elements that are common to the coefficient matrices may not be redundantly and separately provided, and the NURBS object data may be compressed and stored.
【0207】また、図13の処理は、オブジェクトデー
タの読み込み時(ゲーム開始時)に行ってもよいし、情
報記憶媒体の作成前に行ってもよい。オブジェクトデー
タの読み込み時に図13の処理を行う場合には、情報記
憶媒体にはノットベクトルと制御点のデータを記録して
おけばよい。一方、情報記憶媒体の作成前に図13の処
理を行う場合には、情報記憶媒体にはNURBSオブジ
ェクトデータを記録しておけばよい。Further, the processing of FIG. 13 may be performed at the time of reading the object data (at the start of the game) or before the information storage medium is created. When the processing of FIG. 13 is performed at the time of reading the object data, the knot vector and the control point data may be recorded in the information storage medium. On the other hand, when the process of FIG. 13 is performed before creating the information storage medium, NURBS object data may be recorded in the information storage medium.
【0208】また、差分マトリクスを利用する場合に
は、パラメータu、vの初期値が0であることが前提に
なる。従って、パラメータu、vが変化する各変域(区
間)において、ノットベクトルの各要素の値をシフトす
る必要がある。例えばu、vの変域が、u3≦u<u4、
v3≦v<v4である場合には、下式のようなシフト処理
(平行移動)を行う。
U’=[u0−u3 u1−u3 u2−u3 u3−u3 u4−u3 u5−t3 u6−t3…
]
V’=[v0−v3 v1−v3 v2−v3 v3−v3 v4−v3 v5−t3 v6−t3…
]
…(39)
そして、差分マトリクスを利用する場合には、上式(39)
のシフト処理が行われたノットベクトルを用いて、係数
マトリクス(差分算出用)を求める。When the difference matrix is used, it is premised that the initial values of the parameters u and v are 0. Therefore, it is necessary to shift the value of each element of the knot vector in each domain (section) in which the parameters u and v change. For example, the domain of u and v is u 3 ≦ u <u 4 ,
When v 3 ≦ v <v 4 , shift processing (parallel movement) as shown in the following expression is performed. U ′ = [u 0 −u 3 u 1 −u 3 u 2 −u 3 u 3 −u 3 u 4 −u 3 u 5 −t 3 u 6 −t 3 ...] V ′ = [v 0 −v 3 v 1 −v 3 v 2 −v 3 v 3 −v 3 v 4 −v 3 v 5 −t 3 v 6 −t 3 …] (39) Then, when the difference matrix is used, the above equation ( 39)
A coefficient matrix (for difference calculation) is obtained using the knot vector subjected to the shift processing of.
【0209】図14は、図13のステップS23の法線
算出用係数マトリクスの生成処理に関するフローチャー
トである。FIG. 14 is a flow chart relating to the process of generating the coefficient matrix for normal line calculation in step S23 of FIG.
【0210】まず、係数マトリクスの個数を表すkを0
に設定する(ステップS30)。次に、k=kendか
否かを判断し(ステップS31)、k=kendでない
場合には、前述の式(23)に示すように、係数マトリクス
に微分係数マトリクスを乗算し、法線算出用の係数マト
リクスを求める(ステップS32)。そして、kを1だ
けインクリメントする(ステップS33)。以上の処理
を、k=kendになるまで繰り返す。First, k representing the number of coefficient matrices is set to 0.
Is set (step S30). Next, it is determined whether or not k = kend (step S31). If k = kend is not satisfied, the coefficient matrix is multiplied by the differential coefficient matrix as shown in the above equation (23) to calculate the normal line. The coefficient matrix of is calculated (step S32). Then, k is incremented by 1 (step S33). The above process is repeated until k = kend.
【0211】なお、式(38)に示す差分算出用の係数マト
リクスも、図14と同様の処理により求めることができ
る。The coefficient matrix for calculating the difference shown in equation (38) can also be obtained by the same processing as in FIG.
【0212】図15は、NURBS上の各点を求める処
理に関するフローチャートである。FIG. 15 is a flow chart regarding the processing for obtaining each point on the NURBS.
【0213】まず、パラメータu、vを、u=usta
rt、v=vstartに設定する(ステップS4
0)。図18(A)の例では、ustart=u3、v
start=v3になる。First, the parameters u and v are set to u = usta.
rt and v = vstart are set (step S4)
0). In the example of FIG. 18A, start = u 3 , v
start = v 3 .
【0214】次に、v=vendか否かを判断し、v=
vendでない場合には、u=uendか否かを判断す
る(ステップS41、S42)。図18(A)の例で
は、uend=u6、vend=v6になる。Next, it is judged whether v = vend, and v =
If it is not vend, it is determined whether u = uend (steps S41 and S42). In the example of FIG. 18A, uend = u 6 and vend = v 6 .
【0215】u=uendでない場合には、現在のu、
vの値が属する変域に応じた係数マトリクス、法線算出
用係数マトリクス、制御点を、図13の処理で生成され
たNURBSオブジェクトデータから読み出す(ステッ
プS43)。If u = uend is not satisfied, the current u,
The coefficient matrix, the coefficient matrix for normal calculation, and the control points according to the domain to which the value of v belongs are read from the NURBS object data generated by the processing of FIG. 13 (step S43).
【0216】次に、前述の式(18)にしたがって、現在の
u、vの値でのNURBS上での点(頂点)を求めるテ
セレーション処理を行う(ステップS44)。また、法
線算出用係数マトリクスに基づいて、u、v方向の接線
ベクトルを求め、得られた接線ベクトルの外積をとるこ
とで法線ベクトルを求める(ステップS45)。Next, the tessellation process for obtaining the point (vertex) on the NURBS at the current values of u and v is performed according to the above equation (18) (step S44). Further, the tangent vector in the u and v directions is obtained based on the coefficient matrix for calculating the normal, and the normal vector is obtained by taking the outer product of the obtained tangent vectors (step S45).
【0217】次に、パラメータuに、u方向の分割数に
より特定される△uを加算して、パラメータを変化させ
(ステップS46)、ステップS42に戻る。Next, Δu specified by the number of divisions in the u direction is added to the parameter u to change the parameter (step S46), and the process returns to step S42.
【0218】ステップS42でu=uendと判断され
た場合には、u=ustartに戻すと共に、パラメー
タvに、v方向の分割数により特定される△vを加算し
て、パラメータを変化させる(ステップS47)。そし
て、v=vendか否かを判断し(ステップS41)、
v=vendになるまでステップS42〜S47の処理
を繰り返す。When u = uend is determined in step S42, the parameter is changed to u = start and at the same time, the parameter v is added with Δv specified by the number of divisions in the v direction (step S42). S47). Then, it is determined whether v = vend (step S41),
The processes of steps S42 to S47 are repeated until v = vend.
【0219】例えば図19のG1に示すようにu、vの
変域がu3≦u<u4、v3≦v<v4である場合には、N
URBSオブジェクトデータから、制御点Q00〜Q33、
係数マトリクスMu0、Mv0のデータが読み出され
る。そして、これらの制御点Q 00〜Q33、係数マトリク
スMu0、Mv0に基づいて、図20に示す曲面パッチ
30上の各点が求められる。For example, as shown in G1 of FIG.
Domain is u3≤u <uFour, V3≤v <vFour, Then N
From URBS object data, control point Q00~ Q33,
The data of the coefficient matrices Mu0 and Mv0 are read out.
It And these control points Q 00~ Q33, Coefficient matrix
Surface patch shown in FIG. 20 based on Smu0 and Mv0
Each point on 30 is sought.
【0220】また図19のG2に示すようにu、vの変
域がu4≦u<u5、v3≦v<v4である場合には、NU
RBSオブジェクトデータから、制御点Q01〜Q34、係
数マトリクスMu1、Mv0のデータが読み出される。
そして、これらの制御点Q01〜Q34、係数マトリクスM
u1、Mv0に基づいて、図20に示す曲面パッチ32
上の各点が求められる。Further, as shown in G2 of FIG. 19, when the range of u and v is u 4 ≤u <u 5 and v 3 ≤v <v 4 , NU
The data of the control points Q 01 to Q 34 and the coefficient matrices Mu1 and Mv0 are read from the RBS object data.
Then, these control points Q 01 to Q 34 and the coefficient matrix M
Based on u1 and Mv0, the curved surface patch 32 shown in FIG.
The above points are required.
【0221】また図19のG3に示すように、u、vの
変域がu5≦u<u6、v3≦v<v4である場合には、N
URBSオブジェクトデータから、制御点Q02〜Q35、
係数マトリクスMu2、Mv0のデータが読み出され
る。そして、これらの制御点Q 02〜Q35、係数マトリク
スMu2、Mv0に基づいて、図20に示す曲面パッチ
34上の各点が求められる。As shown in G3 of FIG. 19, u, v
Domain is uFive≤u <u6, V3≤v <vFour, Then N
From URBS object data, control point Q02~ Q35,
The data of the coefficient matrix Mu2, Mv0 is read out
It And these control points Q 02~ Q35, Coefficient matrix
Surface patch shown in FIG. 20 based on Smu2 and Mv0
Each point on 34 is determined.
【0222】以上のようにして、制御点Q00〜Q55によ
り生成されるべき全ての曲面パッチ30〜46上の点が
求められることになる。As described above, the points on all the curved surface patches 30 to 46 to be generated by the control points Q 00 to Q 55 are obtained.
【0223】図16、図17は、差分マトリクスを利用
してNURBS上の各点を求める処理に関するフローチ
ャートである。FIG. 16 and FIG. 17 are flowcharts relating to the processing for obtaining each point on NURBS using the difference matrix.
【0224】まず、u、v方向の曲面パッチ番号である
upn、vpnを、upn=0、vpn=0に設定する
(ステップS50)。First, the surface patch numbers upn and vpn in the u and v directions are set to upn = 0 and vpn = 0 (step S50).
【0225】なお、本実施形態では、例えば図21に示
すように各曲面パッチ50〜66の曲面パッチ番号up
n、vpnが設定されている。In the present embodiment, for example, as shown in FIG. 21, the curved surface patch numbers up of the curved surface patches 50 to 66 are up.
n and vpn are set.
【0226】次に、vpn=vpnendか否かを判断
し、vpn=vpnendでない場合には、upn=u
pnendか否かを判断する(ステップS51、S5
2)。図21の例では、upnend=2、vpnen
d=2に設定されている。Next, it is judged whether or not vpn = vpnend, and if vpn = vpnend is not satisfied, upn = u
It is determined whether it is a pnend (steps S51 and S5).
2). In the example of FIG. 21, upnend = 2, vpnen
It is set to d = 2.
【0227】upn=upnendでない場合には、現
在のupn、vpnで指定される曲面パッチに対する処
理を行う(ステップS53)。そして、処理の終了後、
upnを1だけインクリメントして(ステップS5
4)、ステップS52に戻る。If upn = upnend is not satisfied, processing is performed on the curved surface patch designated by the current upn and vpn (step S53). And after the process ends,
increment upn by 1 (step S5
4) and returns to step S52.
【0228】ステップS52でupn=upnendと
判断された場合には、upn=0に戻すと共に、vpn
を1だけインクリメントする(ステップS55)。そし
て、vpn=vpnendか否かを判断し(ステップS
51)、vpn=vpnendになるまでステップS5
2〜S55の処理を繰り返す。When it is determined in step S52 that upn = upnend, upn = 0 is returned and vpn is set.
Is incremented by 1 (step S55). Then, it is determined whether vpn = vpnend (step S
51), until step S5 until vpn = vpnend.
The processing of 2 to S55 is repeated.
【0229】図17は、図16のステップS53の曲面
パッチに対する処理の詳細を示すフローチャートであ
る。FIG. 17 is a flow chart showing details of the processing for the curved surface patch in step S53 of FIG.
【0230】まず、処理対象となっている曲面パッチに
応じた係数マトリクス(差分算出用、法線算出用)と制
御点のデータを、NURBSオブジェクトデータから読
み出し、前述の式(38)にしたがって、差分マトリクス、
法線差分マトリクスを求める(ステップS60)。そし
て、u=0、v=0に設定する(ステップS61)。First, the coefficient matrix (for difference calculation, normal calculation) and control point data corresponding to the curved surface patch to be processed are read out from the NURBS object data, and according to the above equation (38). Difference matrix,
A normal difference matrix is obtained (step S60). Then, u = 0 and v = 0 are set (step S61).
【0231】次に、v=vendか否かを判断し、v=
vendでない場合には、u=uendか否かを判断す
る(ステップS62、S63)。Next, it is judged whether v = vend, and v =
If it is not vend, it is determined whether u = uend (steps S62 and S63).
【0232】なお、差分マトリクスを利用する場合に
は、パラメータu、vに対して上式(39)に示すようなシ
フト処理(平行移動)が施されている。When the difference matrix is used, the shift processing (parallel movement) as shown in the above equation (39) is performed on the parameters u and v.
【0233】u=uendでない場合には、現在のu、
vの値でのNURBS上の点(頂点)を求める(ステッ
プS64)。即ち図11(A)で説明したような加算処
理を行い、u方向での各点を求める。次に、法線差分マ
トリクスに基づいて、u、v方向の接線ベクトルを求
め、その接線ベクトルの外積をとることで、各点での法
線ベクトルを求める(ステップS65)。そして、パラ
メータuに、u方向の分割数により特定される△uを加
算して、パラメータを変化させ(ステップS66)、ス
テップS63に戻る。If u = uend is not satisfied, the current u,
A point (vertex) on NURBS at the value of v is obtained (step S64). That is, addition processing as described with reference to FIG. 11A is performed to obtain each point in the u direction. Next, the normal vector at each point is obtained by obtaining the tangent vector in the u and v directions based on the normal difference matrix and taking the outer product of the tangent vectors (step S65). Then, Δu specified by the number of divisions in the u direction is added to the parameter u to change the parameter (step S66), and the process returns to step S63.
【0234】ステップS63でu=uendと判断され
た場合には、図12(A)、(B)で説明したような差
分マトリクス、法線差分マトリクスのv方向のシフトア
ップ処理を行う(ステップS67)。そして、u=0に
戻すと共に、パラメータvに、v方向の分割数により特
定される△vを加算して、パラメータを変化させる(ス
テップS68)。そして、v=vendか否かを判断し
(ステップS62)、v=vendになるまでステップ
S63〜S68の処理を繰り返す。If u = uend is determined in step S63, the difference matrix and the normal difference matrix as described with reference to FIGS. 12A and 12B are shifted up in the v direction (step S67). ). Then, while returning to u = 0, Δv specified by the number of divisions in the v direction is added to the parameter v to change the parameter (step S68). Then, it is determined whether or not v = vend (step S62), and the processes of steps S63 to S68 are repeated until v = vend.
【0235】なお、図22に、各手法の処理速度の比較
例を示す。Note that FIG. 22 shows a comparative example of the processing speed of each method.
【0236】図22のH1は、ポリゴンを使用した場
合、H2は、DeBoorCoxの漸化式を用いた場合、H3
は、図15で説明した本実施形態の手法1の場合、H4
は、図16、図17で説明した本実施形態の手法2の場
合(差分マトリクスを用いた場合)の処理速度(処理時
間)を表す。図22の各数値は、その値が小さいほど処
理速度が速いことを意味する。In FIG. 22, H1 is H3 when polygons are used, and H2 is H3 when DeBoorCox recurrence formula is used.
Is H4 in the case of the method 1 of the present embodiment described in FIG.
Represents the processing speed (processing time) in the case of the method 2 of the present embodiment described in FIGS. 16 and 17 (when the difference matrix is used). Each numerical value in FIG. 22 means that the smaller the value, the faster the processing speed.
【0237】図22のH1は、その総頂点数がH5に示
す頂点数になるようなポリゴンデータを生成し、それら
のポリゴンの頂点に対してアフィン変換を施した場合の
処理速度である。22. H1 in FIG. 22 is the processing speed when polygon data whose total number of vertices is the number of vertices shown in H5 is generated and the vertices of those polygons are subjected to affine transformation.
【0238】一方、図22のH2、H3、H4は、28
個の制御点(u方向に7個、v方向に4個)に対してア
フィン変換を施し、H6に示す分割数でNURBSを生
成した場合の処理速度である。On the other hand, H2, H3, and H4 in FIG.
This is the processing speed when affine transformation is performed on the control points (7 in the u direction and 4 in the v direction) to generate NURBS with the number of divisions shown in H6.
【0239】図22のH2と、H3及びH4を比較すれ
ばわかるように、DeBoorCoxの漸化式を用い、係数マト
リクスを予め用意しない場合に比べて、本実施形態の手
法1、2は圧倒的に処理速度が速い。As can be seen by comparing H2 of FIG. 22 with H3 and H4, the methods 1 and 2 of this embodiment are overwhelmingly compared with the case where the coefficient matrix is not prepared in advance by using the recurrence formula of DeBoorCox. The processing speed is fast.
【0240】また、H1のポリゴンを使用する場合に比
べても、頂点数が28個(制御点数)を越えた辺りか
ら、本実施形態の手法1、2の方が処理速度が速くな
る。Compared with the case of using the H1 polygon, the processing speeds of the methods 1 and 2 of this embodiment are faster since the number of vertices exceeds 28 (the number of control points).
【0241】また、H3、H4の本実施形態の手法1、
2を比較すると、頂点数が少ない場合には手法1の方が
処理速度が速いが、頂点数が多い場合(28個を越える
辺りから)には、手法2の方が速くなる。Further, the method 1 of this embodiment for H3 and H4,
Comparing two, the method 1 has a higher processing speed when the number of vertices is small, but the method 2 is faster when the number of vertices is large (from around 28).
【0242】4.ハードウェア構成次に、本実施形態を
実現できるハードウェアの構成の一例について図23を
用いて説明する。4. Hardware Configuration Next, an example of a hardware configuration capable of realizing the present embodiment will be described with reference to FIG.
【0243】メインプロセッサ900は、CD982
(情報記憶媒体)に格納されたプログラム、通信インタ
ーフェース990を介して転送されたプログラム、或い
はROM950(情報記憶媒体の1つ)に格納されたプ
ログラムなどに基づき動作し、ゲーム処理、画像処理、
音処理などの種々の処理を実行する。The main processor 900 is a CD982.
It operates based on a program stored in the (information storage medium), a program transferred via the communication interface 990, a program stored in the ROM 950 (one of the information storage media), game processing, image processing,
Various processing such as sound processing is executed.
【0244】コプロセッサ902は、メインプロセッサ
900の処理を補助するものであり、高速並列演算が可
能な積和算器や除算器を有し、マトリクス演算(ベクト
ル演算)を高速に実行する。例えば、オブジェクトを移
動させたり動作(モーション)させるための物理シミュ
レーションに、マトリクス演算などの処理が必要な場合
には、メインプロセッサ900上で動作するプログラム
が、その処理をコプロセッサ902に指示(依頼)す
る。The coprocessor 902 assists the processing of the main processor 900, has a product-sum calculator and a divider capable of high-speed parallel calculation, and executes matrix calculation (vector calculation) at high speed. For example, when a physical simulation for moving or moving an object requires a process such as a matrix calculation, a program operating on the main processor 900 instructs (requests) the coprocessor 902 to perform the process. ) Do.
【0245】ジオメトリプロセッサ904は、座標変
換、透視変換、光源計算、曲面生成などのジオメトリ処
理を行うものであり、高速並列演算が可能な積和算器や
除算器を有し、マトリクス演算(ベクトル演算)を高速
に実行する。例えば、座標変換、透視変換、光源計算な
どの処理を行う場合には、メインプロセッサ900で動
作するプログラムが、その処理をジオメトリプロセッサ
904に指示する。The geometry processor 904 performs geometry processing such as coordinate transformation, perspective transformation, light source calculation, and curved surface generation, has a product-sum calculator and a divider capable of high-speed parallel calculation, and performs matrix calculation (vector calculation). Calculation) is executed at high speed. For example, when processing such as coordinate transformation, perspective transformation, and light source calculation is performed, the program running on the main processor 900 instructs the geometry processor 904 to perform the processing.
【0246】データ伸張プロセッサ906は、圧縮され
た画像データや音データを伸張するデコード処理を行っ
たり、メインプロセッサ900のデコード処理をアクセ
レートする処理を行う。これにより、オープニング画
面、インターミッション画面、エンディング画面、或い
はゲーム画面などにおいて、MPEG方式等で圧縮され
た動画像を表示できるようになる。なお、デコード処理
の対象となる画像データや音データは、ROM950、
CD982に格納されたり、或いは通信インターフェー
ス990を介して外部から転送される。The data expansion processor 906 performs a decoding process for expanding the compressed image data and sound data, and a process for accelerating the decoding process of the main processor 900. As a result, a moving image compressed by the MPEG system or the like can be displayed on the opening screen, the intermission screen, the ending screen, the game screen, or the like. The image data and sound data to be decoded are stored in the ROM 950,
It is stored in the CD 982 or transferred from the outside via the communication interface 990.
【0247】描画プロセッサ910は、ポリゴンや曲面
などのプリミティブ面で構成されるオブジェクトの描画
(レンダリング)処理を高速に実行するものである。オ
ブジェクトの描画の際には、メインプロセッサ900
は、DMAコントローラ970の機能を利用して、オブ
ジェクトデータを描画プロセッサ910に渡すと共に、
必要であればテクスチャ記憶部924にテクスチャを転
送する。すると、描画プロセッサ910は、これらのオ
ブジェクトデータやテクスチャに基づいて、Zバッファ
などを利用した陰面消去を行いながら、オブジェクトを
フレームバッファ922に高速に描画する。また、描画
プロセッサ910は、αブレンディング(半透明処
理)、デプスキューイング、ミップマッピング、フォグ
処理、トライリニア・フィルタリング、アンチエリアシ
ング、シェーディング処理なども行うことができる。そ
して、1フレーム分の画像がフレームバッファ922に
書き込まれると、その画像はディスプレイ912に表示
される。The drawing processor 910 is for executing the drawing (rendering) processing of an object composed of primitive surfaces such as polygons and curved surfaces at high speed. When drawing an object, the main processor 900
Uses the function of the DMA controller 970 to pass the object data to the drawing processor 910 and
If necessary, the texture is transferred to the texture storage unit 924. Then, the drawing processor 910 draws the object in the frame buffer 922 at high speed while performing hidden surface removal using a Z buffer or the like based on these object data and texture. The drawing processor 910 can also perform α blending (semi-transparency processing), depth cuing, mip mapping, fog processing, trilinear filtering, anti-aliasing, shading processing, and the like. Then, when the image for one frame is written in the frame buffer 922, the image is displayed on the display 912.
【0248】サウンドプロセッサ930は、多チャンネ
ルのADPCM音源などを内蔵し、BGM、効果音、音
声などの高品位のゲーム音を生成する。生成されたゲー
ム音は、スピーカ932から出力される。The sound processor 930 incorporates a multi-channel ADPCM sound source, etc., and generates high-quality game sounds such as BGM, sound effects, and sounds. The generated game sound is output from the speaker 932.
【0249】ゲームコントローラ942からの操作デー
タや、メモリカード944からのセーブデータ、個人デ
ータは、シリアルインターフェース940を介してデー
タ転送される。Operation data from the game controller 942, save data from the memory card 944, and personal data are transferred via the serial interface 940.
【0250】ROM950にはシステムプログラムなど
が格納される。なお、業務用ゲームシステムの場合に
は、ROM950が情報記憶媒体として機能し、ROM
950に各種プログラムが格納されることになる。な
お、ROM950の代わりにハードディスクを利用する
ようにしてもよい。The ROM 950 stores system programs and the like. In the case of the arcade game system, the ROM 950 functions as an information storage medium,
Various programs are stored in 950. A hard disk may be used instead of the ROM 950.
【0251】RAM960は、各種プロセッサの作業領
域として用いられる。The RAM 960 is used as a work area for various processors.
【0252】DMAコントローラ970は、プロセッ
サ、メモリ(RAM、VRAM、ROM等)間でのDM
A転送を制御するものである。The DMA controller 970 is a DM between processors and memories (RAM, VRAM, ROM, etc.).
It controls the A transfer.
【0253】CDドライブ980は、プログラム、画像
データ、或いは音データなどが格納されるCD982
(情報記憶媒体)を駆動し、これらのプログラム、デー
タへのアクセスを可能にする。The CD drive 980 is a CD 982 for storing programs, image data, sound data and the like.
(Information storage medium) is driven to enable access to these programs and data.
【0254】通信インターフェース990は、ネットワ
ークを介して外部との間でデータ転送を行うためのイン
ターフェースである。この場合に、通信インターフェー
ス990に接続されるネットワークとしては、通信回線
(アナログ電話回線、ISDN)、高速シリアルバスな
どを考えることができる。そして、通信回線を利用する
ことでインターネットを介したデータ転送が可能にな
る。また、高速シリアルバスを利用することで、他のゲ
ームシステムとの間でのデータ転送が可能になる。The communication interface 990 is an interface for transferring data with the outside via a network. In this case, a communication line (analog telephone line, ISDN), high-speed serial bus, or the like can be considered as the network connected to the communication interface 990. Then, by using the communication line, data transfer via the Internet becomes possible. Further, by using the high-speed serial bus, data transfer with another game system becomes possible.
【0255】なお、本発明の各手段は、その全てを、ハ
ードウェアのみにより実行してもよいし、情報記憶媒体
に格納されるプログラムや通信インターフェースを介し
て配信されるプログラムのみにより実行してもよい。或
いは、ハードウェアとプログラムの両方により実行して
もよい。The means of the present invention may be executed by hardware only, or by only a program stored in an information storage medium or a program distributed via a communication interface. Good. Alternatively, it may be executed by both hardware and a program.
【0256】そして、本発明の各手段をハードウェアと
プログラムの両方により実行する場合には、情報記憶媒
体には、本発明の各手段をハードウェアを利用して実行
するためのプログラムが格納されることになる。より具
体的には、上記プログラムが、ハードウェアである各プ
ロセッサ902、904、906、910、930等に
処理を指示すると共に、必要であればデータを渡す。そ
して、各プロセッサ902、904、906、910、
930等は、その指示と渡されたデータとに基づいて、
本発明の各手段を実行することになる。When each means of the present invention is executed by both hardware and a program, the information storage medium stores a program for executing each means of the present invention using hardware. Will be. More specifically, the program instructs each processor 902, 904, 906, 910, 930, which is hardware, to perform processing, and passes data if necessary. Then, each processor 902, 904, 906, 910,
930 etc., based on the instruction and the passed data,
Each means of the present invention will be implemented.
【0257】図24(A)に、本実施形態を業務用ゲー
ムシステムに適用した場合の例を示す。プレーヤは、デ
ィスプレイ1100上に映し出されたゲーム画像を見な
がら、レバー1102、ボタン1104等を操作してゲ
ームを楽しむ。内蔵されるシステムボード(サーキット
ボード)1106には、各種プロセッサ、各種メモリな
どが実装される。そして、本発明の各手段を実行するた
めの情報(プログラム或いはデータ)は、システムボー
ド1106上の情報記憶媒体であるメモリ1108に格
納される。以下、この情報を格納情報と呼ぶ。FIG. 24A shows an example in which the present embodiment is applied to an arcade game system. The player enjoys the game by operating the lever 1102, the buttons 1104, etc. while watching the game image displayed on the display 1100. Various processors, various memories, etc. are mounted on the built-in system board (circuit board) 1106. Information (program or data) for executing each unit of the present invention is stored in the memory 1108 which is an information storage medium on the system board 1106. Hereinafter, this information will be referred to as stored information.
【0258】図24(B)に、本実施形態を家庭用のゲ
ームシステムに適用した場合の例を示す。プレーヤはデ
ィスプレイ1200に映し出されたゲーム画像を見なが
ら、ゲームコントローラ1202、1204を操作して
ゲームを楽しむ。この場合、上記格納情報は、本体シス
テムに着脱自在な情報記憶媒体であるCD1206、或
いはメモリカード1208、1209等に格納されてい
る。FIG. 24B shows an example in which this embodiment is applied to a home game system. While watching the game image displayed on the display 1200, the player operates the game controllers 1202 and 1204 to enjoy the game. In this case, the above-mentioned stored information is stored in the CD 1206 or the memory cards 1208, 1209, which is an information storage medium that can be detachably attached to the main body system.
【0259】図24(C)に、ホスト装置1300と、
このホスト装置1300とネットワーク1302(LA
Nのような小規模ネットワークや、インターネットのよ
うな広域ネットワーク)を介して接続される端末130
4-1〜1304-nとを含むシステムに本実施形態を適用
した場合の例を示す。この場合、上記格納情報は、例え
ばホスト装置1300が制御可能な磁気ディスク装置、
磁気テープ装置、メモリ等の情報記憶媒体1306に格
納されている。端末1304-1〜1304-nが、スタン
ドアロンでゲーム画像、ゲーム音を生成できるものであ
る場合には、ホスト装置1300からは、ゲーム画像、
ゲーム音を生成するためのゲームプログラム等が端末1
304-1〜1304-nに配送される。一方、スタンドア
ロンで生成できない場合には、ホスト装置1300がゲ
ーム画像、ゲーム音を生成し、これを端末1304-1〜
1304-nに伝送し端末において出力することになる。FIG. 24C shows a host device 1300,
This host device 1300 and network 1302 (LA
A terminal 130 connected via a small network such as N or a wide area network such as the Internet)
An example in which the present embodiment is applied to a system including 4-1 to 1304-n will be described. In this case, the stored information is, for example, a magnetic disk device that can be controlled by the host device 1300,
It is stored in an information storage medium 1306 such as a magnetic tape device or a memory. When the terminals 1304-1 to 1304-n are capable of standalone generation of game images and game sounds, the host device 1300 sends game images,
A game program or the like for generating a game sound is provided on the terminal 1
It is delivered to 304-1 to 1304-n. On the other hand, when it cannot be generated standalone, the host device 1300 generates a game image and a game sound, and the terminal device 1304-1 ...
It will be transmitted to 1304-n and output at the terminal.
【0260】なお、図24(C)の構成の場合に、本発
明の各手段を、ホスト装置(サーバー)と端末とで分散
して実行するようにしてもよい。また、本発明の各手段
を実行するための上記格納情報を、ホスト装置(サーバ
ー)の情報記憶媒体と端末の情報記憶媒体に分散して格
納するようにしてもよい。In the case of the configuration shown in FIG. 24C, each means of the present invention may be distributed and executed by the host device (server) and the terminal. Further, the above stored information for executing each means of the present invention may be distributed and stored in the information storage medium of the host device (server) and the information storage medium of the terminal.
【0261】またネットワークに接続する端末は、家庭
用ゲームシステムであってもよいし業務用ゲームシステ
ムであってもよい。そして、業務用ゲームシステムをネ
ットワークに接続する場合には、業務用ゲームシステム
との間で情報のやり取りが可能であると共に家庭用ゲー
ムシステムとの間でも情報のやり取りが可能な携帯型情
報記憶装置(メモリカード、携帯型ゲーム装置)を用い
ることが望ましい。The terminal connected to the network may be a home-use game system or an arcade game system. When the arcade game system is connected to a network, a portable information storage device is capable of exchanging information with the arcade game system and also with the home game system. (Memory card, portable game device) is preferably used.
【0262】なお本発明は、上記実施形態で説明したも
のに限らず、種々の変形実施が可能である。The present invention is not limited to that described in the above embodiment, and various modifications can be made.
【0263】例えば、本発明のうち従属請求項に係る発
明においては、従属先の請求項の構成要件の一部を省略
する構成とすることもできる。また、本発明の1の独立
請求項に係る発明の要部を、他の独立請求項に従属させ
ることもできる。For example, in an invention according to a dependent claim of the present invention, it is possible to omit some of the constituent elements of the claim on which the invention is dependent. Further, a main part of the invention according to one independent claim of the present invention can be made dependent on another independent claim.
【0264】また、本実施形態では、自由曲面に本発明
を適用した場合について主に説明したが、本発明は自由
曲線にも同様に適用できる。Further, although the case where the present invention is applied to a free-form surface has been mainly described in the present embodiment, the present invention can be applied to a free-form curve as well.
【0265】また、本実施形態では、NURBSの場合
について主に説明したが、本発明は、少なくともノンユ
ニフォームであれば、NURBSに限らず、種々の自由
曲面、自由曲線に適用できる。例えば、処理速度を優先
する場合には、有理化などを省いても構わない。In the present embodiment, the case of NURBS has been mainly described, but the present invention is not limited to NURBS and can be applied to various free-form surfaces and free-form curves as long as it is at least non-uniform. For example, rationalization may be omitted when the processing speed is prioritized.
【0266】また、本実施形態では、自由曲面、自由曲
線の式が4階(3次)の場合について説明したが、処理
時間が許せば、本発明は例えば5階、6階等の場合にも
適用可能である。Further, in the present embodiment, the case where the expressions of the free-form surface and the free-form curve are the fourth floor (third order) has been described. However, if the processing time allows, the present invention can be applied to the fifth floor, the sixth floor, etc. Is also applicable.
【0267】また、混ぜ合わせ関数や係数セットの表現
形式も、本実施形態で説明した表現形式が特に望ましい
が、これに限定されるものではない。The expression form of the mixing function and the coefficient set is preferably the expression form described in this embodiment, but is not limited to this.
【0268】また、本実施形態では、求められた自由曲
面、自由曲線上の各点をポリゴンの頂点に設定して画像
を描画したが、求められた自由曲面、自由曲線上の各点
を直接描画するようにしてもよい。Further, in the present embodiment, an image is drawn by setting each point on the obtained free-form surface and free-form curve as the vertex of the polygon, but the obtained free-form surface and each point on the free-form curve are directly drawn. It may be drawn.
【0269】また、パラメータを変化させながら自由曲
面、自由曲線上の各点を求める手法も、本実施形態で説
明した手法が特に望ましいが、これに限定されるもので
はない。The method described in the present embodiment is particularly preferable as the method for obtaining each point on the free-form surface and the free-form curve while changing the parameters, but the method is not limited to this.
【0270】また本発明は種々のゲーム(格闘ゲーム、
シューティングゲーム、ロボット対戦ゲーム、スポーツ
ゲーム、競争ゲーム、ロールプレイングゲーム、音楽演
奏ゲーム、ダンスゲーム等)に適用できる。In addition, the present invention is applicable to various games (fighting games,
It can be applied to shooting games, robot battle games, sports games, competition games, role playing games, music playing games, dance games, etc.).
【0271】また本発明は、業務用ゲームシステム、家
庭用ゲームシステム、多数のプレーヤが参加する大型ア
トラクションシステム、シミュレータ、マルチメディア
端末、ゲーム画像を生成するシステムボード等の種々の
ゲームシステム(画像生成システム)に適用できる。Further, the present invention is applicable to various game systems such as an arcade game system, a home game system, a large attraction system in which a large number of players participate, a simulator, a multimedia terminal, a system board for generating a game image (image generation). System).
【図1】本実施形態のゲームシステムのブロック図の例
である。FIG. 1 is an example of a block diagram of a game system according to an embodiment.
【図2】図2(A)、(B)は、Bスプライン曲線の例
について示す図である。FIGS. 2A and 2B are diagrams showing examples of B-spline curves.
【図3】NURBS上の各点を求める処理の前段階で、
ノットベクトルに基づき係数マトリクスを演算する手法
について説明するための図である。FIG. 3 is a step before the process of obtaining each point on NURBS,
It is a figure for demonstrating the method of calculating a coefficient matrix based on a knot vector.
【図4】NURBS上の各点を求める処理の前段階で、
係数マトリクスを情報記憶媒体(ネットワーク)から読
み出す手法について説明するための図である。FIG. 4 is a step before the process of obtaining each point on NURBS,
It is a figure for demonstrating the method of reading a coefficient matrix from an information storage medium (network).
【図5】本実施形態により生成される曲面パッチの例を
示す図である。FIG. 5 is a diagram showing an example of a curved surface patch generated according to this embodiment.
【図6】本実施形態により生成されたNURBSオブジ
ェクトの画像の例である。FIG. 6 is an example of an image of a NURBS object generated according to this embodiment.
【図7】本実施形態により生成されたNURBSオブジ
ェクトの画像の例である。FIG. 7 is an example of an image of a NURBS object generated according to this embodiment.
【図8】本実施形態により生成されたNURBSオブジ
ェクトの画像の例である。FIG. 8 is an example of an image of a NURBS object generated according to this embodiment.
【図9】頂点を共有するポリゴンの法線ベクトルを合成
して、頂点の法線ベクトルを求める手法について説明す
るための図である。FIG. 9 is a diagram for explaining a method of deriving a normal vector of a vertex by synthesizing normal vectors of polygons sharing a vertex.
【図10】u、v方向の接線ベクトルを求めて、頂点の
法線ベクトルを求める手法について説明するための図で
ある。FIG. 10 is a diagram for explaining a method of obtaining a normal vector of a vertex by obtaining a tangent vector in the u and v directions.
【図11】図11(A)、(B)は、差分マトリクスの
要素を加算することでNURBS上の各点を求める手法
ついて説明するための図である。11A and 11B are diagrams for explaining a method of obtaining each point on NURBS by adding elements of a difference matrix.
【図12】図12(A)、(B)は、v方向(列方向)
のシフトアップについて説明するための図である。12A and 12B are v direction (column direction).
FIG. 6 is a diagram for explaining shift up of FIG.
【図13】本実施形態の詳細な処理例について示すフロ
ーチャートである。FIG. 13 is a flowchart showing a detailed processing example of the present embodiment.
【図14】本実施形態の詳細な処理例について示すフロ
ーチャートである。FIG. 14 is a flowchart showing a detailed processing example of the present embodiment.
【図15】本実施形態の詳細な処理例について示すフロ
ーチャートである。FIG. 15 is a flowchart showing a detailed processing example of the present embodiment.
【図16】本実施形態の詳細な処理例について示すフロ
ーチャートである。FIG. 16 is a flowchart showing a detailed processing example of the present embodiment.
【図17】本実施形態の詳細な処理例について示すフロ
ーチャートである。FIG. 17 is a flowchart showing a detailed processing example of the present embodiment.
【図18】図18(A)、(B)は、NURBSオブジ
ェクトデータについて説明するための図である。18A and 18B are diagrams for explaining NURBS object data.
【図19】パラメータの値が属する変域に基づいて、制
御点、係数マトリクスを読み出す手法について説明する
ための図である。FIG. 19 is a diagram for explaining a method of reading control points and a coefficient matrix based on a domain to which a parameter value belongs.
【図20】本実施形態により生成される曲面パッチの例
について示す図である。FIG. 20 is a diagram showing an example of a curved surface patch generated according to the present embodiment.
【図21】本実施形態により生成される曲面パッチの例
について示す図である。FIG. 21 is a diagram showing an example of a curved surface patch generated according to this embodiment.
【図22】各手法の処理速度の比較例である。FIG. 22 is a comparative example of the processing speed of each method.
【図23】本実施形態を実現できるハードウェアの構成
の一例を示す図である。FIG. 23 is a diagram showing an example of a hardware configuration capable of realizing the present embodiment.
【図24】図24(A)、(B)、(C)は、本実施形
態が適用される種々の形態のシステムの例を示す図であ
る。24 (A), (B), and (C) are diagrams showing examples of various types of systems to which the present embodiment is applied.
10、12 曲線セグメント 20、22 曲面パッチ 30〜46 曲面パッチ 50〜66 曲面パッチ 100 処理部 110 ゲーム処理部 130 画像生成部 132 係数演算(読み込み)部 134 アフィン変換部 136 曲面(曲線)演算部 138 法線ベクトル演算部 140 描画部 150 音生成部 160 操作部 170 記憶部 172 メインメモリ 173 オブジェクトデータ記憶部 174 フレームバッファ 180 情報記憶媒体 190 表示部 192 音出力部 194 携帯型情報記憶装置 196 通信部 10, 12 curve segments 20,22 curved patch 30-46 curved surface patch 50-66 curved surface patch 100 processing unit 110 Game processing unit 130 Image generator 132 Coefficient calculation (reading) section 134 Affine transformation unit 136 Curved surface calculation unit 138 Normal Vector Operation Unit 140 Drawing unit 150 sound generator 160 Operation part 170 storage 172 main memory 173 Object data storage 174 frame buffer 180 Information storage medium 190 Display 192 sound output section 194 Portable information storage device 196 Communications Department
Claims (16)
て、 ノット間隔が一定でないノットベクトルと制御点とに基
づいて形状が特定されるノンユニフォームな自由曲面又
は自由曲線の混ぜ合わせ関数の係数セットを、パラメー
タを変化させながら自由曲面又は自由曲線上の各点を順
次求める処理の前段階の処理において用意する手段と、 用意された係数セットと、制御点とに基づいて、パラメ
ータを変化させながら自由曲面又は自由曲線上の各点を
順次求める手段と、用意された係数セットに基づいて、自由曲面又は自由曲
線の法線ベクトルを求める手段とを含み、 自由曲面又は自由曲線上の各点を順次求める処理の前段
階の処理において、混ぜ合わせ関数の係数セットに基づ
き得られる法線算出用の係数セットが用意され、 用意された前記法線算出用の係数セットに基づいて、自
由曲面又は自由曲線の法線ベクトルが求められる ことを
特徴とするゲームシステム。1. A game system for generating an image, wherein a coefficient set of a blending function of a non-uniform free-form surface or free-form curve whose shape is specified based on a knot vector with a non-constant knot interval and a control point is provided. , Means for preparing in the process of the previous step of sequentially obtaining each point on the free-form surface or free-curve while changing the parameter, and freely changing the parameter based on the prepared coefficient set and control points Free curved surface or free curve based on the means for sequentially obtaining each point on the curved surface or free curve and the prepared coefficient set
And a means for obtaining the normal vector of the line, and the preceding stage of the processing for sequentially obtaining each point on the free-form surface or free-form curve
In processing the floor, based on the coefficient set of the blending function
The obtained coefficient set for normal calculation is prepared, and based on the prepared coefficient set for normal calculation,
A game system characterized in that a normal vector of a free-form surface or a free-form curve is obtained .
て、 ノット間隔が一定でないノットベクトルと制御点とに基
づいて形状が特定されるノンユニフォームな自由曲面又
は自由曲線の混ぜ合わせ関数であって再帰形表現の漸化
式を展開した多項式で表される混ぜ合わせ関数の係数セ
ットを、パラメータを変化させながら自由曲面又は自由
曲線上の各点を順次求める処理の前段階の処理において
用意する手段と、 用意された係数セットと、制御点とに基づいて、パラメ
ータを変化させながら自由曲面又は自由曲線上の各点を
順次求める手段とを含み、 パラメータを変化させながら自由曲面又は自由曲線上の
各点を順次求める処理の前段階の処理において、混ぜ合
わせ関数の係数セットと制御点を含むオブジェクトデー
タが用意され、 パラメータを変化させながら自由曲面又は自由曲線上の
各点を順次求める処理の際に、前記オブジェクトデータ
の中から、パラメータの値が属する変域に応じた係数セ
ット、制御点が読み出される ことを特徴とするゲームシ
ステム。2. A game system for generating images, which is a non-uniform free-form surface or free-form curve blending function whose shape is specified based on knot vectors and control points whose knot intervals are not constant, and recurses. Recurrence of shape representation
A means for preparing a coefficient set of a mixing function represented by a polynomial in which an expression is expanded in the process before the step of sequentially obtaining each point on the free-form surface or free-curve while changing the parameters, and the prepared coefficient and set, based on a control point, viewed contains a sequentially obtaining means each point on the free-form surface or a free curved while changing the parameters, on the free-form surface or a free curved while changing the parameters
In the process before the process of sequentially obtaining each point,
Object data including coefficient set of control function and control points
On the free-form surface or free-form curve while changing the parameters.
In the process of sequentially obtaining each point, the object data
From among the parameters, the coefficient
The game system is characterized by reading out the control points and control points .
階の処理において、再帰形表現の漸化式を展開した多項
式で表される混ぜ合わせ関数の係数セットをノットベク
トルに基づき演算することで、係数セットが用意される
ことを特徴とするゲームシステム。3. A mixing function represented by a polynomial obtained by expanding a recurrence formula of a recursive expression in a process of a step before a process of sequentially obtaining each point on a free-form surface or a free-form curve according to claim 1 or 2. A game system in which a coefficient set is prepared by calculating the coefficient set based on the knot vector.
階の処理において、混ぜ合わせ関数の係数セットを情報
記憶媒体から読み込む又はネットワークを介して読み込
むことで、係数セットが用意されることを特徴とするゲ
ームシステム。4. The method according to claim 1, wherein the coefficient set of the blending function is read from an information storage medium or read via a network in the process before the process of sequentially obtaining each point on the free-form surface or free-form curve. Therefore, the game system is characterized in that the coefficient set is prepared.
線の法線ベクトルを求める手段を含むことを特徴とする
ゲームシステム。5. The game system according to claim 2, further comprising means for determining a normal vector of a free-form surface or free-form curve based on a prepared coefficient set.
階の処理において、混ぜ合わせ関数の係数セットに基づ
き得られる法線算出用の係数セットが用意され、 用意された前記法線算出用の係数セットに基づいて、自
由曲面又は自由曲線の法線ベクトルが求められることを
特徴とするゲームシステム。6. The coefficient set for normal calculation, which is obtained on the basis of the coefficient set of the blending function in the process of the step before the process of sequentially obtaining each point on the free-form surface or the free-form curve according to claim 5. A game system characterized in that a normal vector of a free-form surface or free-form curve is obtained based on the prepared coefficient set for calculating the normal.
フレーム単位で行う手段を含み、 フレーム単位で行われるアフィン変換の前段階の処理に
おいて、混ぜ合わせ関数の係数セットが用意されること
を特徴とするゲームシステム。7. The method according to claim 1, further comprising means for performing affine transformation on control points of a free-form surface or a free-form curve in frame units, and mixing in a process in a preceding stage of affine transformation performed in frame units. A game system in which a coefficient set of a matching function is prepared.
各点を順次求める処理の前段階の処理において、混ぜ合
わせ関数の係数セットと制御点を含むオブジェクトデー
タが用意され、 パラメータを変化させながら自由曲面又は自由曲線上の
各点を順次求める処理の際に、前記オブジェクトデータ
の中から、パラメータの値が属する変域に応じた係数セ
ット、制御点が読み出されることを特徴とするゲームシ
ステム。8. The object data including a coefficient set of a blending function and a control point is prepared in a process of a step before a process of sequentially obtaining each point on a free curved surface or a free curve while changing parameters. During the process of sequentially obtaining each point on the free-form surface or the free-form curve while changing the parameter, the coefficient set and the control point according to the domain to which the value of the parameter belongs are read out from the object data. A game system characterized by.
であって、 ノット間隔が一定でないノットベクトルと制御点とに基
づいて形状が特定されるノンユニフォームな自由曲面又
は自由曲線の混ぜ合わせ関数の係数セットを、パラメー
タを変化させながら自由曲面又は自由曲線上の各点を順
次求める処理の前段階の処理において用意する手段と、 用意された係数セットと、制御点とに基づいて、パラメ
ータを変化させながら自由曲面又は自由曲線上の各点を
順次求める手段と、用意された係数セットに基づいて、自由曲面又は自由曲
線の法線ベクトルを求める手段とを実行するためのプロ
グラムを含み、 自由曲面又は自由曲線上の各点を順次求める処理の前段
階の処理において、混ぜ合わせ関数の係数セットに基づ
き得られる法線算出用の係数セットが用意され、 用意された前記法線算出用の係数セットに基づいて、自
由曲面又は自由曲線の法線ベクトルが求められる ことを
特徴とする情報記憶媒体。9. A non-uniform free-form surface or free-form curve blending function coefficient, which is a computer-usable information storage medium and whose shape is specified based on a knot vector and a control point whose knot intervals are not constant. A parameter is changed based on the means for preparing the set in the process of the previous stage of the process of sequentially obtaining each point on the free-form surface or free-curve while changing the parameter, the prepared coefficient set, and the control point. However, based on the prepared coefficient set and the means for sequentially obtaining each point on the free-form surface or free-form curve , the free-form surface or free-form
A means for determining the normal vector of a line and a professional
Pre- stage of the process that sequentially calculates each point on the free-form surface or free-form curve including gram
In processing the floor, based on the coefficient set of the blending function
The obtained coefficient set for normal calculation is prepared, and based on the prepared coefficient set for normal calculation,
An information storage medium characterized in that a normal vector of a free-form surface or free-form curve is obtained .
体であって、 ノット間隔が一定でないノットベクトルと制御点とに基
づいて形状が特定されるノンユニフォームな自由曲面又
は自由曲線の混ぜ合わせ関数であって再帰形表現の漸化
式を展開した多項式で表される混ぜ合わせ関数の係数セ
ットを、パラメータを変化させながら自由曲面又は自由
曲線上の各点を順次求める処理の前段階の処理において
用意する手段と、 用意された係数セットと、制御点とに基づいて、パラメ
ータを変化させながら自由曲面又は自由曲線上の各点を
順次求める手段とを実行するためのプログラムを含み、 パラメータを変化させながら自由曲面又は自由曲線上の
各点を順次求める処理の前段階の処理において、混ぜ合
わせ関数の係数セットと制御点を含むオブジェクトデー
タが用意され、 パラメータを変化させながら自由曲面又は自由曲線上の
各点を順次求める処理の際に、前記オブジェクトデータ
の中から、パラメータの値が属する変域に応じ た係数セ
ット、制御点が読み出される ことを特徴とする情報記憶
媒体。10. A computer-usable information storage medium, which is a non-uniform free-form surface or free-form curve blending function whose shape is specified based on knot vectors and control points whose knot intervals are not constant. Recursive recursion
A means for preparing a coefficient set of a mixing function represented by a polynomial in which an expression is expanded in the process before the step of sequentially obtaining each point on the free-form surface or free-curve while changing the parameters, and the prepared coefficient and set, based on a control point, seen including a program for executing a sequential seek means each point on the free-form surface or a free curved while changing the parameters, free-form surface or a free curved on while changing the parameters of
In the process before the process of sequentially obtaining each point,
Object data including coefficient set of control function and control points
On the free-form surface or free-form curve while changing the parameters.
In the process of sequentially obtaining each point, the object data
From among the parameters, the coefficient
An information storage medium characterized by reading out the control points and control points .
階の処理において、再帰形表現の漸化式を展開した多項
式で表される混ぜ合わせ関数の係数セットをノットベク
トルに基づき演算することで、係数セットが用意される
ことを特徴とする情報記憶媒体。11. A mixing function represented by a polynomial obtained by expanding a recurrence formula of a recursive expression in a process of a step before a process of sequentially obtaining each point on a free-form surface or a free-form curve according to claim 9 or 10. An information storage medium characterized in that a coefficient set is prepared by calculating the coefficient set based on the knot vector.
階の処理において、混ぜ合わせ関数の係数セットを情報
記憶媒体から読み込む又はネットワークを介して読み込
むことで、係数セットが用意されることを特徴とする情
報記憶媒体。12. The method according to claim 9 or 10, wherein a coefficient set of a blending function is read from an information storage medium or is read via a network in the process before the process of sequentially obtaining each point on the free-form surface or the free-form curve. As a result, an information storage medium characterized in that a coefficient set is prepared.
線の法線ベクトルを求める手段を実行するためのプログ
ラムを含むことを特徴とする情報記憶媒体。13. The information storage medium according to claim 10, further comprising a program for executing a means for obtaining a normal vector of a free-form surface or free-form curve based on a prepared coefficient set.
階の処理において、混ぜ合わせ関数の係数セットに基づ
き得られる法線算出用の係数セットが用意され、 用意された前記法線算出用の係数セットに基づいて、自
由曲面又は自由曲線の法線ベクトルが求められることを
特徴とする情報記憶媒体。14. The coefficient set for normal calculation, which is obtained on the basis of the coefficient set of the blending function, is prepared in the process of the preceding step of the process for sequentially obtaining each point on the free-form surface or the free-form curve. An information storage medium characterized in that a normal vector of a free-form surface or free-form curve is obtained based on the prepared coefficient set for calculating the normal.
て、 自由曲面又は自由曲線の制御点に対するアフィン変換を
フレーム単位で行う手段を実行するためのプログラムを
含み、 フレーム単位で行われるアフィン変換の前段階の処理に
おいて、混ぜ合わせ関数の係数セットが用意されること
を特徴とする情報記憶媒体。15. The program according to claim 9, further comprising a program for executing a unit for performing affine transformation for a control point of a free-form surface or a free-form curve on a frame-by-frame basis, before the affine transformation performed on a frame-by-frame basis. An information storage medium, characterized in that a coefficient set of a blending function is prepared in the step processing.
各点を順次求める処理の前段階の処理において、混ぜ合
わせ関数の係数セットと制御点を含むオブジェクトデー
タが用意され、 パラメータを変化させながら自由曲面又は自由曲線上の
各点を順次求める処理の際に、前記オブジェクトデータ
の中から、パラメータの値が属する変域に応じた係数セ
ット、制御点が読み出されることを特徴とする情報記憶
媒体。16. The object data including a coefficient set of a blending function and a control point is prepared in a process of a step before a process of sequentially obtaining each point on a free-form surface or a free-form curve while changing parameters. During the process of sequentially obtaining each point on the free-form surface or the free-form curve while changing the parameter, the coefficient set and the control point according to the domain to which the value of the parameter belongs are read out from the object data. An information storage medium characterized by.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000032588A JP3377488B2 (en) | 2000-02-10 | 2000-02-10 | GAME SYSTEM AND INFORMATION STORAGE MEDIUM |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000032588A JP3377488B2 (en) | 2000-02-10 | 2000-02-10 | GAME SYSTEM AND INFORMATION STORAGE MEDIUM |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001218977A JP2001218977A (en) | 2001-08-14 |
| JP3377488B2 true JP3377488B2 (en) | 2003-02-17 |
Family
ID=18557165
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000032588A Expired - Fee Related JP3377488B2 (en) | 2000-02-10 | 2000-02-10 | GAME SYSTEM AND INFORMATION STORAGE MEDIUM |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3377488B2 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2415117B (en) * | 2002-05-10 | 2006-04-12 | Imagination Tech Ltd | An interface and method of interfacing between a parametric modelling unit and a polygon based rendering system |
| US7212205B2 (en) | 2002-11-12 | 2007-05-01 | Matsushita Electric Industrial Co., Ltd. | Curved surface image processing apparatus and curved surface image processing method |
| US20050156930A1 (en) * | 2004-01-20 | 2005-07-21 | Matsushita Electric Industrial Co., Ltd. | Rendering device and rendering method |
| JP2012079291A (en) | 2010-09-08 | 2012-04-19 | Namco Bandai Games Inc | Program, information storage medium and image generation system |
-
2000
- 2000-02-10 JP JP2000032588A patent/JP3377488B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001218977A (en) | 2001-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7042463B2 (en) | Image generating system and program | |
| US20040219978A1 (en) | Image generation method, program, and information storage medium | |
| US7015908B2 (en) | Image generation system and information storage medium | |
| JP3350654B2 (en) | Image generation system and information storage medium | |
| JP4329965B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM | |
| US6847361B1 (en) | Image generation system and program | |
| JP3377488B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM | |
| JP4367804B2 (en) | Image generation system and information storage medium | |
| US20020193161A1 (en) | Game system, program and image generation method | |
| JP3377489B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM | |
| JP2001250128A (en) | Game system and information storage medium | |
| JP4443083B2 (en) | Image generation system and information storage medium | |
| JP2001224845A (en) | Game system and information storage medium | |
| JP2003051024A (en) | Image generation system and information storage medium | |
| JP2001229403A (en) | Game system and information storage medium | |
| JP3614340B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM | |
| JP4497690B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM | |
| JP2003242517A (en) | Image generation system, program, and information storage medium | |
| JP4233065B2 (en) | GAME DEVICE AND INFORMATION STORAGE MEDIUM | |
| JP2001250125A (en) | Game system and information storage medium | |
| JP2003162734A (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM | |
| JP4391633B2 (en) | Image generation system and information storage medium | |
| JP2002216151A (en) | Image generation system, program, and information storage medium | |
| JP2003109029A (en) | Image generation system and program | |
| JP4475763B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20021119 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071206 Year of fee payment: 5 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081206 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091206 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091206 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091206 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101206 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101206 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111206 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111206 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121206 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121206 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |