JP2010134872A - Image processing method, image processing device, image processing program, and storage medium - Google Patents

Image processing method, image processing device, image processing program, and storage medium Download PDF

Info

Publication number
JP2010134872A
JP2010134872A JP2008312614A JP2008312614A JP2010134872A JP 2010134872 A JP2010134872 A JP 2010134872A JP 2008312614 A JP2008312614 A JP 2008312614A JP 2008312614 A JP2008312614 A JP 2008312614A JP 2010134872 A JP2010134872 A JP 2010134872A
Authority
JP
Japan
Prior art keywords
coordinate information
polygon
intersection
image processing
coordinates
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.)
Withdrawn
Application number
JP2008312614A
Other languages
Japanese (ja)
Inventor
Chiaki Sugiyama
千秋 杉山
Yusaku Mizuno
祐作 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sega Corp
Original Assignee
Sega Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sega Corp filed Critical Sega Corp
Priority to JP2008312614A priority Critical patent/JP2010134872A/en
Publication of JP2010134872A publication Critical patent/JP2010134872A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for rendering a contour-like line polygon of high display quality. <P>SOLUTION: Intersection points that are apexes at which polygons intersect with a predetermined plane are acquired, and after the intersection points are collected, the intersection points are sorted by distance. Coordinate information is updated by using a middle point of one piece of coordinate information and another piece of coordinate information that is adjacent, of the sorted coordinate information. Then the coordinate of a vector in the direction of a viewpoint or a camera is added to the coordinate of the sorted intersection points. Based on the coordinate of the sorted intersection points, to which the coordinate of the vector is added, a connected line segment is rendered as 3D-CG by using information processing device. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、仮想3次元空間の画像処理方法、画像処理装置、画像処理プログラム、及び記憶媒体において、特に描画品質が高い接続した線分を描画する画像処理方法、画像処理装置、画像処理プログラム、及び記憶媒体に関する。   The present invention relates to an image processing method, an image processing apparatus, an image processing program, and a storage medium for a virtual three-dimensional space. And a storage medium.

従来、高度なCG(コンピュータ・グラフィックス)を描画するための機器は、業務用CG製作機器や、通常「ゲームセンター」と呼ばれる遊戯施設等にある高価な遊技機器にのみ搭載されていた。
しかし、近年のコンピュータの演算能力のめざましい進歩により、高度なCGが一般化している。実際に、実写と見間違うほどの精緻な物体や風景を、3次元コンピュータ・グラフィックスを描画するグラフィックプロセッサが、比較的安価に販売されている。
Conventionally, a device for drawing advanced CG (computer graphics) has been mounted only on a commercial CG production device or an expensive game device in a game facility ordinarily called a “game center”.
However, advanced CG has become common due to remarkable progress in computing power of computers in recent years. Actually, graphic processors that draw three-dimensional computer graphics on objects and landscapes that are so detailed that they are mistaken for live-action images are sold at a relatively low cost.

このようなグラフィックプロセッサでは、数万〜数百万もの多数の「ポリゴン」と呼ばれる多面体に、テクスチャと呼ばれる画像を貼り付け、明度や影の表現を行い、秒速数十回〜数百回という単位でリアルタイム(実速度)でレンダリング(描画)して、立体的な物体や風景を描画する。さらに、近年の高度なグラフィックプロセッサでは、光源追跡(レイ・トレーシング)やラジオシティといった、より演算能力が必要なCG表現を可能としたものも実現されつつある。
そして、このようなグラフィックプロセッサは、通常のPC(パーソナル・コンピュータ)の高価な外付けグラフィック・ボードのみならず、一般(コンシューマ)向けのビデオゲーム機、携帯電話等の携帯端末にも内蔵されてきている。
In such a graphic processor, an image called texture is pasted on tens of thousands to millions of polyhedrons called “polygons” to express brightness and shadows, and a unit of several tens to several hundred times per second Render (draw) in real time (actual speed) to draw a three-dimensional object or landscape. Furthermore, recent advanced graphic processors are being realized that enable CG expressions that require more computing power, such as light source tracking (ray tracing) and radiosity.
Such graphic processors have been incorporated not only in expensive external graphic boards of ordinary PCs (personal computers) but also in portable terminals such as video game machines for general consumers (consumer) and mobile phones. ing.

しかしながら、従来の3次元コンピュータ・グラフィックス(仮想3次元空間の描画方法)の場合には、実際には複数のポリゴンによって構成されたオブジェクトなどが2次元の液晶ディスプレイ等にアフィン変換等されて投影される。
このため、写実的な表現はできても、高さ等の立体的な感覚を読み取ることが難しいことがあった。
However, in the case of conventional 3D computer graphics (virtual 3D space drawing method), an object composed of a plurality of polygons is actually projected by affine transformation or the like on a 2D liquid crystal display or the like. Is done.
For this reason, even if realistic expression is possible, it is sometimes difficult to read a three-dimensional sense such as height.

そこで、描画表現を用いて表現される複数のポリゴンからなるオブジェクトなどの「高さ」を示す技術が必要とされていた。
ところが、近年、グラフィックプロセッサの描画するポリゴン数が多くなりすぎたため、仮想3次元空間内における、オブジェクトを構成するそれぞれのポリゴンからポリゴンの「高さ」を求めること、つまり、仮想空間内におけるオブジェクトの高さや高度などを求めることは難しかった。
また、単に各ポリゴンの所定の高さ位置同士を「直線」でつないで表現すると、直線のギザギザが目立つという問題があった。すなわち、レンダリングにより明度や影がなめらかに表現されているものと対比すると、線分の直線性に違和感が生じるという問題があった。
Therefore, a technique for indicating the “height” of an object composed of a plurality of polygons expressed using a drawing expression is required.
However, since the number of polygons drawn by the graphic processor has increased in recent years, the polygon “height” is calculated from each polygon constituting the object in the virtual three-dimensional space, that is, the object in the virtual space. It was difficult to ask for height and altitude.
Further, when the predetermined height positions of the polygons are simply connected by “straight lines”, there is a problem that the jaggedness of the straight lines is noticeable. That is, there is a problem in that the linearity of the line segment is uncomfortable when compared with the rendering in which brightness and shadow are smoothly expressed.

このため、頂点を直線でつなぐのではなく、頂点を曲線で描画することが考えられる。このような曲線の描画方法としては、ベジェ曲線やB−スプライン曲線が用いられている(特許文献1の従来技術を参照)。しかしながら、従来の曲線描画方法では、非常に多くの演算が必要であるという問題があった。
そこで、特許文献1を参照すると、複数の座標データによって指定された各線分の中点を演算して曲線補間によって近似曲線を生成する近似曲線演算手段と、該近似曲線演算手段によって演算された曲線の誤差に関する閾値を設定する閾値設定手段と、該閾値設定手段によって設定された閾値と前記近似曲線演算手段によって演算された曲線の誤差とを比較して誤差の有無を判別する誤差判別手段と、該誤差判別手段によって誤差があると判断されたとき、当該線分の中点で分割された各線分について、前記近似曲線演算手段により、曲線補間によって近似曲線を生成し、前記誤差判別手段によって誤差がないと判断されたとき、当該座標データを記憶するメモリ手段とを備え、該メモリ手段に記憶された座標データによってアウトラインフオント等の文字や図形等を描画することを特徴とする情報処理装置が記載されている(以下、従来技術1とする。)。
For this reason, it is conceivable to draw the vertices with a curved line instead of connecting the vertices with a straight line. As a method for drawing such a curve, a Bezier curve or a B-spline curve is used (see the prior art in Patent Document 1). However, the conventional curve drawing method has a problem that a large number of operations are required.
Therefore, referring to Patent Document 1, approximate curve calculation means for calculating the midpoint of each line segment designated by a plurality of coordinate data and generating an approximate curve by curve interpolation, and the curve calculated by the approximate curve calculation means Threshold setting means for setting a threshold relating to the error, and error determination means for comparing the threshold set by the threshold setting means and the error of the curve calculated by the approximate curve calculation means to determine the presence or absence of an error; When it is determined that there is an error by the error determining means, an approximate curve is generated by curve interpolation for each line segment divided at the midpoint of the line segment, and an error is determined by the error determining means. Memory means for storing the coordinate data when it is determined that there is no data, the outline data is stored by the coordinate data stored in the memory means. The information processing apparatus characterized by drawing a character or a figure of cement such like are disclosed (hereinafter referred to as prior art 1.).

従来技術1の情報処理装置は、頂点の中点をとって頂点を複数回更新して更新前後の誤差が所定以下となると曲線を描画するために、曲線の描画演算に際して、曲線の座標を乗算することなしに、簡単かつ迅速に実行可能な加算や除算だけで、直線による曲線近似ができるので、高速度の曲線補間処理を行うことができる。   The information processing apparatus of Prior Art 1 takes the midpoint of a vertex and updates the vertex a plurality of times, and draws a curve when the error before and after the update is less than or equal to a predetermined value. Without performing this, curve approximation by a straight line can be performed by only addition and division that can be performed easily and quickly, so that high-speed curve interpolation processing can be performed.

特許第3059739号公報Japanese Patent No. 3059739

ベジェ曲線、B−スプライン曲線、及び従来技術1の情報処理装置による従来の描画方法は、頂点を更新してそのまま曲線で補間するので、頂点を更新したときに元の頂点の位置情報とのずれが大きいまま曲線補間を行うが、これを仮想3次元空間上での描画方法に用いると、頂点が他のポリゴンの背後に埋もれてしまい、補間された曲線を表示できなくなったり、描画精度が落ちるという問題があった。   The conventional drawing method by the Bezier curve, the B-spline curve, and the information processing apparatus of the related art 1 updates the vertex and interpolates with the curve as it is, so that the deviation from the position information of the original vertex when the vertex is updated. Interpolation is performed with a large value, but if this is used for a drawing method in a virtual three-dimensional space, the vertex is buried behind other polygons, and the interpolated curve cannot be displayed or the drawing accuracy is reduced. There was a problem.

本発明は、このような状況に鑑みてなされたものであり、上述の課題を解消することを課題とする。   This invention is made | formed in view of such a condition, and makes it a subject to eliminate the above-mentioned subject.

本発明の画像処理方法は、仮想3次元空間に複数のポリゴンから形成されるオブジェクトと仮想視点を配置し、前記仮想視点から見た前記オブジェクトの画像を生成する画像処理方法であって、各ポリゴンの頂点座標を取得し、該頂点座標に基づき、前記各ポリゴンの辺を求め、前記各ポリゴンの辺ごとに、所定の高さ情報を備えた複数の点の座標情報を求める工程と、所定の座標情報を基準として前記座標情報をソートする工程と、前記ソートされた座標情報のうち、1の座標情報と該1の座標情報と近接する他の座標情報との中点をとって座標情報を更新する工程と、更新された座標情報に、前記仮想視点又は前記仮想視点の座標情報に基づく方向ベクトル座標を加える工程と、方向ベクトル座標が加えられた座標情報から線を描画する工程とをコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理方法は、前記座標情報を求める工程は、前記各ポリゴンのそれぞれの辺において、高さ情報を備えたポリゴンとの交差点である座標情報を求める工程をコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理方法は、前記座標情報を更新する工程は、前記ソートされた座標情報のうち、ソートを開始した座標情報とソートを終了した座標情報とが所定距離内に位置するとき、前記各座標情報間の距離を小さくする工程を更にコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理方法は、前記方向ベクトル座標を加える工程は、前記更新された座標情報に方向ベクトルを加える工程をコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理方法は、前記線を描画する工程は、前記方向ベクトル座標を加えられた座標情報の3点ごとに線を描画する工程を更にコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理方法は、前記線を描画する工程は、線の描画を開始した座標情報と描画を終了した座標情報とが所定距離内に位置するとき、前記線の描画を開始した座標情報と前記描画を終了した座標情報を更新し、該更新された各座標情報間を直線で描画する工程を更にコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理方法は、前記線を描画する工程は、前記仮想3次元空間内に設定される所定の座標情報との距離に応じて前記線の色相、明度、彩度のいずれか1つを変化させる工程を更にコンピュータの制御手段に実行させることを特徴とする。
本発明の画像処理装置は、仮想3次元空間に複数のポリゴンから形成されるオブジェクトと仮想視点を配置し、前記仮想視点から見た前記オブジェクトの画像を生成する画像処理装置であって、前記画像処理装置は、各ポリゴンの頂点座標を取得し、該頂点座標に基づき、前記各ポリゴンの辺を求め、前記各ポリゴンの辺ごとに高さ情報を有する複数の点の座標情報を求める手段と、所定の座標情報を基準として前記座標情報をソートする手段と、前記ソートされた座標情報のうち、1の座標情報と該1の座標情報と近接する他の座標情報との中点をとって座標情報を更新する手段と、更新された座標情報に、前記仮想視点又は前記仮想視点の座標情報に基づく方向ベクトル座標を加える手段と、方向ベクトルの座標が加えられた座標情報から線を描画する手段とを備えることを特徴とする。
本発明の画像処理プログラムは、仮想3次元空間に複数のポリゴンから形成されるオブジェクトと仮想視点を配置し、前記仮想視点から見た前記オブジェクトの画像を生成する画像処理プログラムであって、各ポリゴンの頂点座標を取得し、該頂点座標に基づき、前記各ポリゴンの辺を求め、前記各ポリゴンの辺ごとに所定の高さ情報を有する複数の点の座標情報を求める手順と、所定の座標情報を基準として前記座標情報をソートする手順と、前記ソートされた座標情報のうち、1の座標情報と該1の座標情報と近接する他の座標情報との中点をとって座標情報を更新する手順と、更新された座標情報に、前記仮想視点又は前記仮想視点の座標情報に基づく方向ベクトル座標を加える手順と、方向ベクトルの座標が加えられた座標情報から線を描画する手順とをコンピュータの制御手段に実行させることを特徴とする。
本発明の記録媒体は、前記画像処理プログラムをコンピュータに実行させるためのプログラムをコンピュータ読取可能に構成されたことを特徴とする。
An image processing method according to the present invention is an image processing method in which an object formed from a plurality of polygons and a virtual viewpoint are arranged in a virtual three-dimensional space, and an image of the object viewed from the virtual viewpoint is generated. Obtaining the vertex coordinates of the polygons, obtaining the sides of the polygons based on the vertex coordinates, and obtaining the coordinate information of a plurality of points having predetermined height information for each side of the polygons; Sorting the coordinate information on the basis of the coordinate information; and taking the midpoint between one coordinate information of the sorted coordinate information and another coordinate information close to the one coordinate information, A step of updating, a step of adding direction vector coordinates based on the virtual viewpoint or the coordinate information of the virtual viewpoint to the updated coordinate information, and drawing a line from the coordinate information to which the direction vector coordinates are added Characterized in that to execute the extent the control means of the computer.
In the image processing method of the present invention, the step of obtaining the coordinate information causes the control means of the computer to execute a step of obtaining coordinate information that is an intersection with a polygon having height information at each side of each polygon. It is characterized by that.
In the image processing method of the present invention, in the step of updating the coordinate information, among the sorted coordinate information, when the coordinate information that has started sorting and the coordinate information that has been sorted are located within a predetermined distance, The step of reducing the distance between each piece of coordinate information is further caused to be executed by a computer control means.
In the image processing method of the present invention, the step of adding the direction vector coordinates causes the computer control means to execute a step of adding a direction vector to the updated coordinate information.
In the image processing method of the present invention, the step of drawing the line further causes the computer control means to execute a step of drawing a line for every three points of the coordinate information to which the direction vector coordinates are added. .
In the image processing method of the present invention, in the step of drawing the line, when the coordinate information that started drawing the line and the coordinate information that finished drawing are located within a predetermined distance, the coordinate information that started drawing the line And updating the coordinate information for which the drawing has been completed, and causing the computer control means to further execute a step of drawing a line between the updated coordinate information.
In the image processing method of the present invention, in the step of drawing the line, any one of hue, brightness, and saturation of the line is determined according to a distance from predetermined coordinate information set in the virtual three-dimensional space. Further, it is characterized in that the computer control means further executes the step of changing the above.
An image processing apparatus according to the present invention is an image processing apparatus that arranges an object formed from a plurality of polygons and a virtual viewpoint in a virtual three-dimensional space, and generates an image of the object viewed from the virtual viewpoint. The processing device obtains the vertex coordinates of each polygon, obtains the sides of each polygon based on the vertex coordinates, and obtains the coordinate information of a plurality of points having height information for each side of each polygon; Coordinates by taking a midpoint between the coordinate information sorting means based on predetermined coordinate information and one coordinate information of the sorted coordinate information and another coordinate information close to the one coordinate information. Means for updating information, means for adding direction vector coordinates based on the virtual viewpoint or the coordinate information of the virtual viewpoint to the updated coordinate information, and coordinate information obtained by adding the coordinates of the direction vector. Characterized in that it comprises a means for drawing a line.
An image processing program of the present invention is an image processing program for arranging an object formed from a plurality of polygons and a virtual viewpoint in a virtual three-dimensional space, and generating an image of the object viewed from the virtual viewpoint. A step of obtaining the vertex coordinates of each polygon, obtaining the sides of each polygon based on the vertex coordinates, obtaining coordinate information of a plurality of points having predetermined height information for each side of each polygon, and predetermined coordinate information The coordinate information is updated by taking the midpoint between the coordinate information of the sorted coordinate information and one coordinate information of the sorted coordinate information and the other coordinate information adjacent to the coordinate information. From the procedure, the procedure of adding the direction vector coordinates based on the virtual viewpoint or the coordinate information of the virtual viewpoint to the updated coordinate information, and the coordinate information to which the coordinates of the direction vector are added Characterized in that to be executed by the control means of the computer and procedures for drawing.
The recording medium of the present invention is characterized in that a program for causing a computer to execute the image processing program is configured to be readable by a computer.

本発明によれば、頂点座標間の中点をとって頂点座標を更新後に、仮想視点又は仮想カメラ方向に更新した頂点座標を移動させるので、更新後の頂点が埋まってしまい上手く線描画できなくなることを防止できる描画方法を提供することができる。   According to the present invention, since the vertex coordinates updated in the virtual viewpoint or the virtual camera direction are moved after the vertex coordinates are updated by taking the middle point between the vertex coordinates, the updated vertices are filled and the line drawing cannot be performed well. It is possible to provide a drawing method that can prevent this.

<第1の実施の形態>
〔ゲーム装置10の制御構成〕
本発明の第1の実施の形態に係るゲーム装置10(情報処理装置)は、PC/AT互換機等のPC(パーソナル・コンピュータ)、業務用機器、遊技機器、一般向け(コンシューマ)ゲーム機器、携帯端末等であり、高度なCGの描画機能を備えている。
図1を参照して説明すると、ゲーム装置10は、CPU100(制御手段)と、主記憶部110(主記憶手段)と、補助記憶部120(補助記憶手段)と、ブートROM130と、ペリフェラルI/F140と、バスアービタ150と、グラフィックプロセッサ160(描画手段)と、グラフィックメモリ170と、オーディオプロセッサ180と、オーディオメモリ190と、通信I/F200とを含んで構成される。
<First Embodiment>
[Control Configuration of Game Device 10]
A game apparatus 10 (information processing apparatus) according to the first embodiment of the present invention includes a PC (personal computer) such as a PC / AT compatible machine, business equipment, game equipment, general (consumer) game equipment, It is a portable terminal or the like and has an advanced CG drawing function.
Referring to FIG. 1, the game apparatus 10 includes a CPU 100 (control means), a main storage unit 110 (main storage unit), an auxiliary storage unit 120 (auxiliary storage unit), a boot ROM 130, a peripheral I / O. F140, bus arbiter 150, graphic processor 160 (drawing means), graphic memory 170, audio processor 180, audio memory 190, and communication I / F 200 are included.

CPU100は、CPU(Central Processing Unit、中央処理装置)、MPU(Micro Processing Unit)、DSP(Digital Siganl Processor)、ASIC(Application Specific Processor、特定用途向けプロセッサー)等である演算・制御能力を備えた制御手段である。また、CPU100に、主記憶部110や補助記憶部120やグラフィックプロセッサ160やオーディオプロセッサ180等の機能を備えることも可能である。   The CPU 100 includes a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Processor, control capability with application specific control), and the like. Means. Further, the CPU 100 can be provided with functions such as the main storage unit 110, the auxiliary storage unit 120, the graphic processor 160, and the audio processor 180.

主記憶部110は、RAM(Random Access Memory)等の主記憶用に使われる高速な記憶手段である。
主記憶部110には、後述するように、主に後述する地面オブジェクト400のポリゴン数を少なくして、他のオブジェクトとの衝突を検出するために使われるコリジョンオブジェクト450を備えている。
なお、このコリジョンオブジェクト450は、グラフィックメモリ170上に備えることも可能である。また、地面オブジェクト400から、グラフィックプロセッサのアダプティブ・メッシュ機能等を用いて動的に生成することも可能である。
The main storage unit 110 is a high-speed storage unit used for main storage such as a RAM (Random Access Memory).
As will be described later, the main storage unit 110 includes a collision object 450 that is mainly used for detecting a collision with another object by reducing the number of polygons of a ground object 400 described later.
The collision object 450 can also be provided on the graphic memory 170. Further, it can be dynamically generated from the ground object 400 using an adaptive mesh function of a graphic processor or the like.

補助記憶部120は、HDD(Hard Disk Drive)、フラッシュメモリ、SRAM(スタティックRAM)、磁気テープ装置、光ディスク装置等の補助記憶手段である。補助記憶部120には、ゲーム装置10をコンピュータとして機能させるためのOS(Operating System、図示せず)が備えられており、各アプリケーションプログラムが各種API(Application Programming Interface)により、ゲーム装置10の各機能にアクセス可能である。
このアプリケーションプログラムとして、本発明の第1の実施の形態に係るゲーム装置10では、コリジョンオブジェクト450をいくつかの高さで輪切り状態にして等高線状の線ポリゴン(接続した線分)である「高さポリゴン」を求める高さポリゴン作成部125を備えている。この高さポリゴン作成部125は、他の、例えばゴルフゲームのプログラムに用いるためのクラスやサブルーチン等の単位として備えることができる。また、高さポリゴン作成部125を、他のプログラムから汎用的に呼び出すDLL(ダイナミック・リンキング・ライブラリー)や共通クラスとして備えることも可能である。
The auxiliary storage unit 120 is auxiliary storage means such as an HDD (Hard Disk Drive), a flash memory, an SRAM (Static RAM), a magnetic tape device, and an optical disk device. The auxiliary storage unit 120 is provided with an OS (Operating System, not shown) for causing the game apparatus 10 to function as a computer, and each application program is operated by various APIs (Application Programming Interface). The function is accessible.
As this application program, in the game device 10 according to the first embodiment of the present invention, the collision object 450 is cut into circles at several heights and is a contour line polygon (connected line segment). A height polygon creation unit 125 for obtaining “polygon” is provided. The height polygon creating unit 125 can be provided as a unit of a class, a subroutine, or the like for use in other, for example, a golf game program. It is also possible to provide the height polygon creating unit 125 as a DLL (dynamic linking library) or a common class that is generally called from another program.

詳細に説明すると、高さポリゴン作成部125は、メインプログラムと、交点取得部310(交点取得手段)、交点ソート部320(交点ソート手段)、色決定部325(色決定手段)、視点方向移動部330(視点方向移動手段)、曲線作成部340(曲線作成手段)、及び終点処理部350(終点処理手段)のような、各種クラスや付随するデータを含んで構成される。
交点取得部310は、横をx座標、縦をy座標、奥行きをz座標とする左手座標系(本発明の第1の実施の形態に係る描画方法において、以下、左手座標系を用いて説明する。)における、例えば、コリジョンオブジェクト450を構成する複数のポリゴンと、所定の高さ(y座標)をもったx−z平面とが交差するときの座標情報(以下、交点)を取得する。なお、この交点については、平面ではない交点を求めることも可能である。
交点ソート部320は、交点取得部310により取得された交点の情報を、例えば、所定の座標情報(点)からの距離を基準としてソートする(並び換える)。この所定の座標情報(点)としては、例えば、高さポリゴン作成部125をゴルフゲームに用いる場合は、ゴルフにおけるグリーン上のカップが設定されている位置の位置座標を用いることが好適である。なお、この位置座標としては、カップが設定されている位置の仮想3次元空間での点の座標や、カップが設定されている位置のx−y軸の線がx−z平面と交差した点の座標等を用いることができる。また、所定の座標情報からの距離として、単純に、仮想視点が設定されている位置の位置座標からの距離を用いることも可能である。さらに、ワールド座標からビュー座標に変換した後のz軸の座標値等を用いることもできる。また、交点ソート部320は、ソートした交点の情報から、曲線描画のために、中点を取得する処理についても行う。
色決定部325は、等高線状の線ポリゴンの色を決める。この等高線状の線ポリゴンの色としては、例えば、高さポリゴン作成部125をゴルフゲームに用いる場合は、ゴルフにおけるグリーンの所定の座標情報(カップが設定されている位置や、グリーン上のゴルフボールが配置されている位置)からの高さの値に従って、寒色〜暖色のグラデーションのような色を選択して表現することができる。
視点方向移動部330は、各交点について、視線方向のベクトルを加えて移動する処理を行う。これにより、粗いコリジョンオブジェクト450から作成された曲線が、コリジョンオブジェクト450の中に埋もれて描画されないことを防ぐことができる。
曲線作成部340は、ソートされて中点を取得した頂点について、更に中点を取得する等の処理を行って、なめらかな曲線の頂点を作成する。この曲線の頂点を作成する処理については、後述する。この曲線の頂点を作成する処理により、誤差を少なくして、少ない交点から曲線を描画することができる。
終点処理部350は、曲線の端と端が接続される場合に、直線的に接続されることを防ぐための処理を行う。これにより、例えば、ゴルフゲームのカップ付近のように、等高線状の曲線が円を描いた際にも、なめらかな曲線を描画することができる。
More specifically, the height polygon creation unit 125 includes a main program, an intersection acquisition unit 310 (intersection acquisition unit), an intersection sort unit 320 (intersection sort unit), a color determination unit 325 (color determination unit), and a viewpoint direction shift. The unit 330 (viewpoint direction moving unit), the curve creating unit 340 (curve creating unit), and the end point processing unit 350 (end point processing unit) include various classes and associated data.
The intersection acquisition unit 310 is a left-handed coordinate system in which the horizontal coordinate is x-coordinate, the vertical coordinate is y-coordinate, and the depth is z-coordinate (in the drawing method according to the first embodiment of the present invention, the description will be given below using the left-handed coordinate system For example, coordinate information (hereinafter referred to as an intersection) when a plurality of polygons constituting the collision object 450 and an xz plane having a predetermined height (y coordinate) intersect is obtained. For this intersection, it is possible to obtain an intersection that is not a plane.
The intersection sorting unit 320 sorts (rearranges) the intersection information acquired by the intersection acquisition unit 310 based on, for example, the distance from predetermined coordinate information (points). As this predetermined coordinate information (point), for example, when the height polygon creating unit 125 is used in a golf game, it is preferable to use the position coordinates of the position where the cup on the green in golf is set. In addition, as this position coordinate, the coordinate of the point in the virtual three-dimensional space of the position where the cup is set, or the point where the xy axis line of the position where the cup is set intersects the xz plane. Can be used. Further, as the distance from the predetermined coordinate information, it is also possible to simply use the distance from the position coordinates of the position where the virtual viewpoint is set. Furthermore, the z-axis coordinate value after the conversion from the world coordinates to the view coordinates can also be used. The intersection sorting unit 320 also performs processing for acquiring a midpoint for drawing a curve from the sorted intersection information.
The color determination unit 325 determines the color of the contour line polygon. As the color of the contour line polygon, for example, when the height polygon creating unit 125 is used in a golf game, predetermined coordinate information of golf green (a position where a cup is set or a golf ball on the green) In accordance with the height value from the position where the color is placed, a color such as a gradation of cold color to warm color can be selected and expressed.
The viewpoint direction moving unit 330 performs a process of moving each intersection by adding a vector of the line-of-sight direction. Accordingly, it is possible to prevent a curve created from the rough collision object 450 from being buried in the collision object 450 and not being drawn.
The curve creation unit 340 performs a process such as obtaining a midpoint on the vertices that have been sorted to obtain a midpoint, and creates smooth curve vertices. The process for creating the vertices of this curve will be described later. By the process of creating the vertices of the curve, it is possible to draw the curve from a small number of intersections with less error.
The end point processing unit 350 performs processing for preventing linear connection when the ends of the curve are connected. As a result, for example, when a contour-shaped curve draws a circle like a golf game cup, a smooth curve can be drawn.

ブートROM130は、ROMやNOR型フラッシュメモリやSRAM等の不揮発性記憶媒体である。ブートROM130は、ゲーム装置10が起動する際に、CPU100のマイクロコードの設定を行ったり、各部の初期化を行ったり、補助記憶部120からOS等が起動するような指示を行ったりする。   The boot ROM 130 is a non-volatile storage medium such as a ROM, a NOR flash memory, or an SRAM. When the game apparatus 10 is activated, the boot ROM 130 sets the microcode of the CPU 100, initializes each unit, and gives an instruction to activate the OS or the like from the auxiliary storage unit 120.

ペリフェラルI/F140は、各種周辺機器(ペリフェラル)に接続するための、USB、IEEE1394、シリアル、パラレル、赤外線、無線等のインターフェイスを提供する部位である。各種周辺機器としては、ゲームパッド、スティック型コントローラー、加速度検出器、振動装置等のフォースフィードバック装置、足踏み/手押し式のスイッチ、ディスプレイモニタの画面上の位置を検出する位置検出器、CCD/CMOSカメラ、タッチパッド、タッチパネル、キーボード、マウスやトラックボール等のポインティングデバイス、ライトの点灯用コントローラー等を用いることができる。   The peripheral I / F 140 is a part that provides an interface such as USB, IEEE 1394, serial, parallel, infrared, and wireless for connecting to various peripheral devices (peripherals). Various peripheral devices include game pad, stick-type controller, acceleration detector, force feedback device such as vibration device, foot / hand-operated switch, position detector for detecting the position on the screen of the display monitor, CCD / CMOS camera A touch pad, a touch panel, a keyboard, a pointing device such as a mouse or a trackball, a light lighting controller, or the like can be used.

バスアービタ150は、いわゆる「チップセット」等の、各部を接続するためのバスインターフェイスを提供する集積回路である。このバスアービタ150で接続される各部のバスのスピードは異なっていてもよく、上り/下りで非対称であってもよい。また、例えば、CPU100と、主記憶部110と、バスアービタ150の間はFSBやHTといった高速なバスで接続され、グラフィックプロセッサ160とバスアービタ150の間も広帯域なバスで接続されるのが好適である。さらに、CPU100にDDR2/3 SDRAMやXDR DRAM等のバスインターフェイスが内蔵されて、主記憶部110を直接読み書きするように構成されていてもよい。   The bus arbiter 150 is an integrated circuit that provides a bus interface for connecting each part, such as a so-called “chip set”. The bus speed of each part connected by the bus arbiter 150 may be different, and may be asymmetric in up / down. In addition, for example, it is preferable that the CPU 100, the main storage unit 110, and the bus arbiter 150 are connected by a high-speed bus such as FSB or HT, and the graphic processor 160 and the bus arbiter 150 are connected by a broadband bus. . Further, the CPU 100 may include a bus interface such as a DDR2 / 3 SDRAM or an XDR DRAM so that the main storage unit 110 can be directly read and written.

グラフィックプロセッサ160は、高度な3次元CGを描画する機能をもつグラフィックプロセッサである。グラフィックプロセッサ160は、ポリゴンのジオメトリ(座標)の計算を行うジオメトリ部162と、ジオメトリ計算が行われたポリゴンをラスタライズ/レンダリング(描画)するレンダリング部164とを含んで構成される。また、グラフィックプロセッサ160は、液晶ディスプレイやPDP(プラズマ・ディスプレイ・パネル)やHMD(ヘッドマウントディスプレイ)やプロジェクター等であるディスプレイモニタに描画された画像を出力するために、RAMDAC(RAM D/Aコンバーター)やHDMIインターフェイス等を備えている。
ジオメトリ部162は、ポリゴンの3次元空間での座標(ワールド座標)について、行列の回転や拡大等を行って、アフィン変換等を行い、ポリゴンの2次元空間での座標を求める部位である。また、ジオメトリ部162は、ポリゴンの分割やスプライン補完等のテッセレーションを行う、「ジオメトリシェーダ」(又はバーテックスシェーダ)を備えることもできる。
レンダリング部164は、座標計算されたポリゴンについて、テクスチャと呼ばれる画像データを貼り付け、各種効果を加えてグラフィックメモリ170に描画する部位である。この各種効果としては、プログラマブル・シェーダ等を用いて、光点・影(シェーディング)計算、明暗の表現、半透明、ぶれ、霧、ぼかし、HDR(ハイダイナミックレンジ合成)等の計算を行うことができる。また、レンダリング部164が描画するポリゴンの種類としては、点ポリゴン(ポイント)、線ポリゴン(ラインリスト)、三角形や四角形といった面ポリゴン、面ポリゴンの集合体等がある。加えて、レンダリング部164がレイ・トレーシング等を用いて描画を行う際には、円、楕円、球、メタボール等の領域で定義される物体を描画することも可能である。
なお、ジオメトリ部162を、CPU100にて処理するように構成することも可能である。この場合は主記憶部110に記憶するプログラムをCPU100が実行して作成したポリゴンの座標を、グラフィックメモリ170に転送等を行う。レンダリング部164は、このポリゴンの座標に従って、ポリゴンを描画する。
The graphic processor 160 is a graphic processor having a function of drawing advanced three-dimensional CG. The graphic processor 160 includes a geometry unit 162 that calculates polygon geometry (coordinates) and a rendering unit 164 that rasterizes / renders (renders) the polygon for which the geometry calculation has been performed. The graphic processor 160 is a RAMDAC (RAM D / A converter) for outputting an image drawn on a display monitor such as a liquid crystal display, PDP (plasma display panel), HMD (head mounted display), or projector. ) And an HDMI interface.
The geometry unit 162 is a part for obtaining coordinates of the polygon in the two-dimensional space by performing affine transformation or the like by rotating or enlarging the matrix with respect to the coordinates (world coordinates) of the polygon in the three-dimensional space. The geometry unit 162 can also include a “geometry shader” (or a vertex shader) that performs tessellation such as polygon division and spline interpolation.
The rendering unit 164 is a part that pastes image data called texture on the coordinate-calculated polygon and draws it in the graphic memory 170 with various effects. As these various effects, calculation of light spot / shadow (shading), expression of light and darkness, translucency, blur, fog, blur, HDR (high dynamic range composition), etc. are performed using a programmable shader or the like. it can. The types of polygons rendered by the rendering unit 164 include point polygons (points), line polygons (line lists), surface polygons such as triangles and quadrangles, and surface polygon aggregates. In addition, when the rendering unit 164 performs rendering using ray tracing or the like, an object defined by a region such as a circle, an ellipse, a sphere, or a metaball can be rendered.
The geometry unit 162 may be configured to be processed by the CPU 100. In this case, the coordinates of polygons created by the CPU 100 executing the program stored in the main storage unit 110 are transferred to the graphic memory 170. The rendering unit 164 draws the polygon according to the polygon coordinates.

グラフィックメモリ170は、グラフィックプロセッサ160が描画するために高速に読み書きができる記憶媒体である。たとえば、このグラフィックメモリとして、GDDR(Graphics Double Data Rate(グラフィックス・ダブル・データレート))等の広帯域なメモリを高レベルのインターリーブ等を用いて接続することができる。また、システムLSIのようにグラフィックメモリをグラフィックプロセッサ160に内蔵する構成も可能である。また、グラフィックプロセッサ160が描画している間に、ディスプレイモニタに表示するためのデュアルポート構成をとることも可能である。
本発明の第1の実施の形態に係るグラフィックメモリ170には、例えばゴルフゲーム用のポリゴンの情報として、多数のポリゴンで構成されている、地面オブジェクト400と、物体オブジェクト410とを備えることができる。なお、このポリゴンの情報としては、ポリゴンの3次元の座標、テクスチャ、色、光源の位置等を記憶することができる。
地面オブジェクト400は、地形を描画するための多数のポリゴンの情報を記憶したポリゴンの集合体のオブジェクトである。この地面オブジェクト400は、数万〜数十万単位の多数のポリゴンを備えていたり、ポリゴンをテッセレーションにより補完して描画するためのデータを備えているため、例えば、ゴルフ場の風景をフォト・リアリスティック(写実的)に描画することができる。地面オブジェクトには、芝目等や草等の「ファー(毛皮)・シェーディング」で自然に表現するためのオブジェクトも含まれる。地面オブジェクト400は、このように多数のポリゴンを含んでいるために、地面オブジェクト400とボール等のオブジェクトとの衝突・交差計算を行うのは容易ではない。このために、本発明の第1の実施の形態に係る描画方法では、地面オブジェクト400のポリゴン数を少なくしたコリジョンオブジェクト450を用いる。
物体オブジェクト410は、木や建物などの風景に関する物体のポリゴンの情報を記憶したポリゴンの集合体のオブジェクトである。実際に、ボール等の衝突計算を行うときには、コリジョンオブジェクト450と、この物体オブジェクト410とを合わせたポリゴンの集合体を用いて衝突計算を行うことが好適である。また、この物体オブジェクト410と、地面オブジェクト400とは、一体的なデータとして構成することも、分離された状態で構成することもできる。
The graphic memory 170 is a storage medium that can be read and written at high speed for the graphic processor 160 to draw. For example, a wide-band memory such as GDDR (Graphics Double Data Rate) can be connected as the graphic memory using a high level interleaving or the like. Further, a configuration in which a graphic memory is built in the graphic processor 160 as in the case of a system LSI is also possible. It is also possible to adopt a dual port configuration for displaying on a display monitor while the graphic processor 160 is drawing.
The graphic memory 170 according to the first embodiment of the present invention can include, for example, a ground object 400 and an object object 410 that are formed of a large number of polygons as polygon information for a golf game. . As the polygon information, the three-dimensional coordinates, texture, color, light source position, etc. of the polygon can be stored.
The ground object 400 is a polygon aggregate object that stores information on a large number of polygons for rendering the terrain. The ground object 400 includes a large number of polygons of tens of thousands to hundreds of thousands, or data for complementing and rendering polygons by tessellation. Realistic (realistic) drawing. The ground object also includes objects for natural expression by “fur (shading)” such as grass and grass. Since the ground object 400 includes a large number of polygons as described above, it is not easy to perform a collision / intersection calculation between the ground object 400 and an object such as a ball. For this reason, in the drawing method according to the first embodiment of the present invention, the collision object 450 in which the number of polygons of the ground object 400 is reduced is used.
The object object 410 is a polygon aggregate object that stores polygon information of an object related to a landscape such as a tree or a building. Actually, when the collision calculation of a ball or the like is performed, it is preferable to perform the collision calculation by using a polygonal aggregate including the collision object 450 and the object object 410. In addition, the object object 410 and the ground object 400 can be configured as integral data or in a separated state.

オーディオプロセッサ180は、音楽や音声や効果音を出力するためのPCM(Wave)音源等を備えたDSP(デジタル・シグナル・プロセッサ)等である。オーディオプロセッサ180は、物理演算音源、FM音源等の計算を行い、残響や反射等の各種音声効果を計算することもできる。オーディオプロセッサ180の出力は、D/A(デジタル・アナログ)変換され、デジタルアンプ等に接続されて、実際にスピーカーで音楽や音声や効果音として再生される。また、オーディオプロセッサ180は、マイクから入力した音声の音声認識等にも対応している。
オーディオメモリ190は、音楽や音声や効果音のためのデジタル変換されたデータを記憶している記憶媒体である。オーディオプロセッサ180とオーディオメモリ190とを一体的に構成することも当然可能である。
The audio processor 180 is a DSP (digital signal processor) provided with a PCM (Wave) sound source for outputting music, voice, and sound effects. The audio processor 180 can calculate physical sound sources, FM sound sources, and the like, and can also calculate various sound effects such as reverberation and reflection. The output of the audio processor 180 is D / A (digital / analog) converted, connected to a digital amplifier or the like, and is actually reproduced as music, sound, or sound effect by a speaker. The audio processor 180 also supports voice recognition of voice input from a microphone.
The audio memory 190 is a storage medium that stores digitally converted data for music, voice, and sound effects. Of course, the audio processor 180 and the audio memory 190 may be integrally configured.

通信I/F200は、LAN(ローカル・エリア・ネットワーク)、WAN(ワイド・エリア・ネットワーク)等のネットワークに接続するための(例えば、有線/無線LAN、WiMax(登録商標)、電話線、携帯電話網、PHS網、電灯線ネットワーク、cLink、HDMI、IEEE1394等)インターフェイスである。通信I/F200を介して、他のゲーム装置やサーバ装置へと通信可能に接続することができる。これにより、例えば、ゴルフゲームの場合には、通信可能に接続されている他のゲーム装置のプレイヤーと共同で遊んだり、複数のゲーム装置が通信可能に接続されたサーバ装置がスコアの集計等を行ったりすることなどが可能である。   The communication I / F 200 is connected to a network such as a LAN (Local Area Network) or a WAN (Wide Area Network) (for example, wired / wireless LAN, WiMax (registered trademark), telephone line, mobile phone) Network, PHS network, power line network, cLink, HDMI, IEEE 1394, etc.) interface. Via the communication I / F 200, it is possible to connect to other game devices or server devices so as to be communicable. Thus, for example, in the case of a golf game, the server device to which a plurality of game devices are communicably connected can play together with players of other game devices that are communicably connected, and the score can be counted. It is possible to go.

〔本発明の第1の実施の形態に係る描画処理〕
ここで、図2〜図11を更に参照して、ゲーム装置10を用いて、本発明の第1の実施の形態に係る描画処理を行う際に、ゴルフゲームのグリーン部分の等高線状の線ポリゴンの描画の例について説明する。
上述したように、近年のグラフィックプロセッサのように描画するポリゴンが多い場合には、地面や人物等のポリゴンの集合体であるオブジェクトと、他のオブジェクトとの衝突等の座標計算(以下、衝突演算という。)のために、膨大な演算能力が必要であるという問題があった。
このために、本発明の第1の実施の形態に係るゲーム装置10では、衝突演算のために、「コリジョンオブジェクト」と呼ばれる少ないポリゴン数(粗い)オブジェクトであるコリジョンオブジェクト450を用いる。このコリジョンオブジェクト450により、専用の「物理演算」ハードウェアを用いなくても、物体オブジェクト410のような人物や物体のオブジェクトと地面との接触・衝突する場合に、十分な精度で高速に計算することができる。
さらに、本発明の第1の実施の形態に係る描画方法では、このコリジョンオブジェクトを用いて、複雑で多数のポリゴンのデータである地面オブジェクト400の上に、等高線状の線ポリゴン(高さポリゴン)を描画することができる。
これにより、地面オブジェクト400のような多数のポリゴンを用いて重い(複雑な)計算をする必要がなく、リアルタイムで等高線状の線ポリゴンを描画できるという効果が得られる。
また、なめらかな地面オブジェクト400のような多数のポリゴンの上に線ポリゴンを描くことで、ポリゴン及びそのポリゴンの集合体であるオブジェクトの立体的な情報をユーザーが得やすくするという効果が得られる。
以下で、図2のデータ構成の概念図と、図3のフローチャートを参照して、本発明の第1の実施の形態に係る描画処理について詳しく説明する。
[Drawing Processing According to First Embodiment of the Present Invention]
2 to 11, when the game apparatus 10 is used to perform the drawing process according to the first embodiment of the present invention, the contour line polygon of the green portion of the golf game is performed. An example of drawing will be described.
As described above, when there are many polygons to be drawn as in recent graphic processors, coordinate calculation such as collision between an object that is a collection of polygons such as the ground and a person and other objects (hereinafter referred to as collision calculation). Therefore, there is a problem that a huge amount of computing power is required.
For this purpose, the game apparatus 10 according to the first embodiment of the present invention uses a collision object 450 that is a small number of polygon objects (coarse) called a “collision object” for the collision calculation. With this collision object 450, even when a dedicated “physical calculation” hardware is not used, when a person or object such as the object object 410 contacts or collides with the ground, the calculation is performed with sufficient accuracy and at high speed. be able to.
Furthermore, in the drawing method according to the first embodiment of the present invention, contour line polygons (height polygons) are formed on the ground object 400, which is complex and data of many polygons, using this collision object. Can be drawn.
This eliminates the need for heavy (complex) calculations using a large number of polygons such as the ground object 400, and provides an effect of drawing contour line polygons in real time.
Further, by drawing a line polygon on a large number of polygons such as the smooth ground object 400, it is possible to obtain an effect that the user can easily obtain three-dimensional information of the polygon and an object that is an aggregate of the polygons.
Hereinafter, the drawing process according to the first embodiment of the present invention will be described in detail with reference to the conceptual diagram of the data configuration of FIG. 2 and the flowchart of FIG.

〔高さポリゴン作成部125のデータ構成〕
まず、図2を参照して、高さポリゴン作成部125が用いるデータ構成について説明する。
高さポリゴン作成部125が用いるデータとしては、例えば、図2の表に示すような、コリジョンオブジェクトD101、交点座標D102(頂点座標、座標情報)、等高線下端高さD103、等高線上端高さD104、等高線間隔D105、といった配列(配列変数)や変数を用いることができる。
[Data structure of height polygon creation unit 125]
First, the data configuration used by the height polygon creation unit 125 will be described with reference to FIG.
The data used by the height polygon creation unit 125 includes, for example, a collision object D101, intersection coordinates D102 (vertex coordinates, coordinate information), contour line lower edge height D103, contour line upper edge height D104, as shown in the table of FIG. An array (array variable) or a variable such as a contour line interval D105 can be used.

コリジョンオブジェクトD101は、コリジョンオブジェクト450の三角、四角ポリゴンのリストに対して、各ポリゴンの各頂点の3次元座標を抽出して記憶する。
具体例を挙げて説明すると、コリジョンオブジェクトD101は、3次元座標を示すx軸、y軸、z軸の値と行列計算のためのw値の4つの単精度の浮動小数点の実数のデータを備えたベクトル(vec4f)型の配列(例えば、tris[])を用いることができる。ここでは、頂点数を増減させることを容易にするため、リジョンオブジェクトD101を構造体のリンクリストのようなデータ形式で構成して、「.pos1」、「.pos2」、「.pos3」といった3角形の各頂点の座標と、「.next」というコリジョンオブジェクトD101の次の構造体を示すポインタを、リンクリストの要素として記憶することもできる。この場合は、tris[]の終点(端点)にあたるtris[頂点数].nextの最後には、リンクリストの最後を示すNULL(NiL、空、0)等の値を記憶する。
なお、以下において、[]は、配列であることを示す。この配列としては、構造体の配列のように、ベクトルや行列の集合を用いることができる。また、本発明の実施の形態においては、「配列」には、リンクリスト(リスト)のようなデータ形式も含むものとする。
また、これらの配列や変数に用いる値としては、単精度の浮動小数点実数ではなく、倍精度や倍々精度のような浮動小数点の実数のデータ、固定小数点の実数のデータ、整数データ等を用いることも当然可能である。
The collision object D101 extracts and stores the three-dimensional coordinates of each vertex of each polygon from the list of triangles and square polygons of the collision object 450.
To explain with a specific example, the collision object D101 includes four single-precision floating-point real number data of x-axis, y-axis, and z-axis values indicating three-dimensional coordinates and w-values for matrix calculation. A vector (vec4f) type array (for example, tris []) can be used. Here, in order to make it easy to increase or decrease the number of vertices, the region object D101 is configured in a data format such as a linked list of structures, and 3 such as “.pos1”, “.pos2”, “.pos3”, etc. The coordinates of each vertex of the square and a pointer indicating the next structure of the collision object D101 “.next” may be stored as an element of the link list. In this case, tris [number of vertices]. At the end of next, a value such as NULL (NiL, empty, 0) indicating the end of the link list is stored.
In the following, [] indicates an array. As this array, a set of vectors and matrices can be used like an array of structures. In the embodiment of the present invention, the “array” includes a data format such as a link list (list).
The values used for these arrays and variables should be floating-point real data such as double-precision and double-precision, fixed-point real data, and integer data, not single-precision floating-point real numbers. Of course it is also possible.

交点座標D102は、コリジョンオブジェクトD101の各三角、四角ポリゴンの各頂点を結んだ線と、x座標とz座標に平行なx−z平面とが交わった点である「交点」の座標、及びこの交点から中間点等を求めて作成する曲線の頂点の座標を記憶する。
具体例を挙げて説明すると、上述の「交点」の座標、及びこの交点から中間点等を求めて作成する曲線の頂点の座標を記憶する配列(例えば、配列hline_list[][])を用いることができる。
また、この配列は、等高線状の線ポリゴンを描画する数×各曲線の座標数の領域を確保して用いることができる。
The intersection coordinate D102 is a coordinate of an “intersection” that is a point at which a line connecting each vertex of the triangle or square polygon of the collision object D101 intersects with an xz plane parallel to the x coordinate and the z coordinate. The coordinates of the vertices of the curve created by obtaining an intermediate point from the intersection are stored.
To explain with a specific example, use an array (for example, array hline_list [] []) that stores the coordinates of the above-mentioned "intersection" and the coordinates of the vertices of a curve created by obtaining an intermediate point from the intersection. Can do.
In addition, this arrangement can be used by securing a region of the number of contour line polygons to be drawn × the number of coordinates of each curve.

等高線下端高さD103は、x−z平面の高さを示す値の最小値である。
具体例を挙げて説明すると、等高線下端高さD103は、等高線状の線ポリゴンを描画する最低の高さを示している変数(例えば、変数hline_min)を用いることができる。
また、この変数に代入する等高線下端高さD103の値としては、例えば、ゴルフゲームの場合には、グリーンの部分の高さの最小値を用いることができる。
また、後述するように本発明の第1の実施の形態に係る描画方法において、高さポリゴン作成部125を投射影表現に用いる場合には、仮想空間内で人物や物体等を構成するオブジェクトの周囲の地面の高さの最小値を用いることができる。
さらに、地面オブジェクトのy座標の最小値/最大値といった値を単純に用いることも可能である。
The contour line lower end height D103 is a minimum value indicating the height of the xz plane.
As a specific example, the contour bottom edge height D103 can be a variable (for example, variable hline_min) indicating the minimum height for drawing contour line polygons.
Further, as the value of the contour line lower end height D103 to be substituted into this variable, for example, in the case of a golf game, the minimum value of the green portion can be used.
As will be described later, in the drawing method according to the first embodiment of the present invention, when the height polygon creating unit 125 is used for the projection shadow expression, the objects constituting the person, the object, etc. in the virtual space are displayed. The minimum height of the surrounding ground can be used.
Furthermore, it is possible to simply use a value such as the minimum value / maximum value of the y coordinate of the ground object.

等高線上端高さD104は、x−z平面の高さを示す値の最大値である。
具体例を挙げて説明すると、等高線上端高さD104は、等高線状の線ポリゴンを描画する最大の高さを示している変数(例えば、変数hline_max)を用いることができる。
この変数に代入する等高線上端高さD104の値としては、例えば、ゴルフゲームの場合には、グリーンの部分の高さの最大値等を用いることができる。
The contour line upper end height D104 is the maximum value indicating the height of the xz plane.
As a specific example, the contour line upper end height D104 can use a variable (for example, variable hline_max) indicating the maximum height at which a contour line polygon is drawn.
As a value of the contour line upper end height D104 to be substituted into this variable, for example, in the case of a golf game, the maximum value of the height of the green portion can be used.

等高線間隔D105は、等高線状の線ポリゴンを描画するx−z平面の高さの間隔(等高線の間隔)を示す値である。
具体例を挙げて説明すると、等高線間隔D105は、等高線状の線ポリゴンを描画する間隔を示している変数(例えば、変数hline_width)を用いることができる。
この変数に代入する等高線間隔D105の値は、例えばゴルフゲームの場合は、等高線上端高さD104の値から、等高線下端高さD103の値を引いて、等高線状の線ポリゴンを描画する数(等高線の本数)で割ることで求められるが、これに限られない。
The contour line interval D105 is a value indicating the height interval (contour line interval) of the xz plane for drawing contour line polygons.
As a specific example, the contour line interval D105 can be a variable (for example, a variable hline_width) indicating an interval for drawing contour line polygons.
For example, in the case of a golf game, the value of the contour line interval D105 assigned to this variable is the number of contour line polygons drawn by subtracting the value of the contour line bottom edge height D103 from the value of the contour line top edge height D104 (contour lines). It is calculated by dividing by the number of

なお、この他にも、それぞれの等高線状の線ポリゴンに係る値を用いることができる。
具体的には、それぞれの等高線状の線ポリゴンに係る値を示す変数hは、整数の変数として、初期値を0とし、下記の高さポリゴン作成部125のメインプログラムのループ内を実行後にインクリメント(1足す)され、等高線の本数が最大値となる。
In addition, values related to the respective contour line polygons can be used.
Specifically, the variable h indicating the value related to each contour line polygon is an integer variable, the initial value is 0, and incremented after execution in the loop of the main program of the height polygon creation unit 125 described below. The number of contour lines is the maximum value.

また、交点座標D102の配列に記憶される交点や曲線の頂点の数に係る値として、頂点数(初期値は0)を備えることができる。
具体例を挙げて説明すると、交点座標D102の配列hline_list[][]に記憶する交点や曲線の頂点の数である変数として、頂点数numを備える。この頂点数numには、変数hの各値における交点座標D102の要素数(例えば、hline_list[変数h][]の要素数)を、必要なときに代入して使用する。
In addition, the number of vertices (the initial value is 0) can be provided as a value related to the number of intersection points or curve vertices stored in the array of intersection point coordinates D102.
To explain with a specific example, the number of vertices num is provided as a variable that is the number of intersection points or curve vertices stored in the array hline_list [] [] of the intersection coordinate D102. For the number of vertices num, the number of elements of the intersection coordinates D102 at each value of the variable h (for example, the number of elements of hline_list [variable h] []) is substituted and used when necessary.

加えて、最終的に曲線描画のための新たな線ポリゴン用のリンクリストや配列(例えば、p[][])も、等高線の本数分だけ用意することが可能である。   In addition, it is possible to prepare as many link lists and arrays (for example, p [] []) for new line polygons as possible for drawing a curve as many as the number of contour lines.

以下で、図3のフローチャートを参照して、高さポリゴン作成部125のメインプログラムの処理について、各ステップを追いながら説明する。
高さポリゴン作成部125においては、図3のループで示したように、等高線の本数だけ各処理(関数)を呼び出していることが分かる。
なお、以下の描画処理は、CPU100が、補助記憶部120に記憶された高さポリゴン作成部125のプログラムやクラスを、ハードウェア資源を用いて演算制御して実行することで実現することができる。
In the following, referring to the flowchart of FIG. 3, the processing of the main program of the height polygon creating unit 125 will be described following each step.
It can be seen that the height polygon creation unit 125 calls each process (function) as many as the number of contour lines, as shown by the loop of FIG.
The following drawing processing can be realized by the CPU 100 executing and controlling the programs and classes of the height polygon creating unit 125 stored in the auxiliary storage unit 120 using hardware resources. .

(ステップS101)
まず、高さポリゴン作成部125は、頂点取得処理を行う。
高さポリゴン作成部125は、この頂点取得処理においては、等高線状の線ポリゴンを作成したい部分、すなわち等高線を引きたい部分のコリジョンオブジェクト450の三角形、四角形ポリゴンの頂点座標を取得する。
具体的には、高さポリゴン作成部125は、この取得した頂点座標を、主記憶部110や補助記憶部120に、上述したコリジョンオブジェクトD101の配列のリンクリストとして記憶し、配列の最後を示すポインタをNULLとする。
また、この処理において、高さポリゴン作成部125は、等高線状の線ポリゴンを描画する本数(以下、等高線の本数と呼ぶ。)を求める。この等高線の本数は、例えば50本等の所定の値を設定することもできるし、等高線下端高さD103の値と等高線上端高さD104の値との差から好適な本数を決定することもできる。またビューポイント内のポリゴンの数等を用いて、最適な値を求めることもできる。
(Step S101)
First, the height polygon creation unit 125 performs vertex acquisition processing.
In this vertex acquisition process, the height polygon creation unit 125 obtains the vertex coordinates of the triangle or the quadrilateral polygon of the collision object 450 where the contour line polygon is to be created, that is, the contour line is to be drawn.
Specifically, the height polygon creation unit 125 stores the acquired vertex coordinates in the main storage unit 110 or the auxiliary storage unit 120 as a linked list of the above-described collision object D101 array, and indicates the end of the array. The pointer is set to NULL.
In this process, the height polygon creation unit 125 obtains the number of contour line polygons to be drawn (hereinafter referred to as the number of contour lines). The number of contour lines can be set to a predetermined value, such as 50, or a suitable number can be determined from the difference between the value of the contour line lower end height D103 and the value of the contour line upper end height D104. . An optimal value can also be obtained by using the number of polygons in the viewpoint.

(ステップS102)
ここで、高さポリゴン作成部125は、すべての等高線を処理しているか判定する。
具体的には、高さポリゴン作成部125は、図3のループのループ内で、すべての等高線状の線ポリゴンを作成する処理を終了したか判定する。
このループとしては、例えばfor()ループのようなループ構造を用いることができる。ここでは、高さポリゴン作成部125は、処理する等高線状の線ポリゴンの本数を示す整数の変数hの初期値を0と設定し、その後、高さポリゴン作成部125は、変数hが描画する等高線の本数を超えているかを判定する。
(ステップS102がYesの場合)
変数hが描画する等高線の本数と同じか超えていると判断した場合には、すべての等高線を処理しているものとして、本発明の第1の実施の形態に係る描画処理を終了する。
(ステップS102がNoの場合)
変数hが描画する等高線の本数より少ないと判断した場合には、ループ内の各処理を実行する。高さポリゴン作成部125は、ループ内の各処理の実行後に、変数hに1を足すなど、変数hに対してインクリメントを行い、また判定を行う。
(Step S102)
Here, the height polygon creation unit 125 determines whether all the contour lines are processed.
Specifically, the height polygon creation unit 125 determines whether or not the processing for creating all contour line polygons is completed within the loop of the loop of FIG.
As this loop, for example, a loop structure such as a for () loop can be used. Here, the height polygon creation unit 125 sets the initial value of an integer variable h indicating the number of contour line polygons to be processed to 0, and then the height polygon creation unit 125 draws the variable h. Determine if the number of contour lines is exceeded.
(When Step S102 is Yes)
When it is determined that the variable h is equal to or exceeds the number of contour lines to be drawn, it is assumed that all the contour lines are processed, and the drawing process according to the first embodiment of the present invention is terminated.
(When Step S102 is No)
When it is determined that the variable h is less than the number of contour lines to be drawn, each process in the loop is executed. The height polygon creation unit 125 increments the variable h and makes a determination such as adding 1 to the variable h after each process in the loop.

(ステップS103)
ここで、高さポリゴン作成部125の交点取得部310は、交点計算処理を行う。
すなわち、交点取得部310は、コリジョンオブジェクト450とx−z平面との交点を求めて、交点座標D102に記憶する。
具体例を挙げて説明すると、この交点計算処理においては、ステップS101で得られた三角形、四角形のポリゴンのリストであるコリジョンオブジェクトD101のリンクリストに対して、すべての交点を計算する。つまり、この交点の計算では、Triangleという、3角形ポリゴンのポインタを示す型の変数triを定義し、この変数triに配列(tris[])のアドレスを渡す。すなわち、変数triは、各ポリゴンを示すことができる。この上で、配列(tris[])の各要素を示すtri.nextがNULLになるまで、すなわち、すべてのポリゴンを処理するまで、for()やuntil()のようなループとして各ポリゴンと変数hに係るx−z平面の高さでの交点計算を行う。
以下で、図4のフローチャートを参照して、このステップS103の交点計算処理の具体的な処理の流れについて更に詳しく説明する。
(Step S103)
Here, the intersection acquisition unit 310 of the height polygon creation unit 125 performs intersection calculation processing.
That is, the intersection acquisition unit 310 obtains an intersection between the collision object 450 and the xz plane, and stores it in the intersection coordinate D102.
Explaining with a specific example, in this intersection calculation process, all intersections are calculated for the link list of the collision object D101, which is a list of triangles and squares obtained in step S101. In other words, in the calculation of the intersection point, a variable “trig” that indicates a triangle polygon pointer called Triangle is defined, and the address of the array (tris []) is passed to this variable tri. That is, the variable tri can indicate each polygon. On this, tri. Indicating each element of the array (tris []). Until next becomes NULL, that is, until all the polygons are processed, the intersection calculation at the height of the xz plane related to each polygon and the variable h is performed as a loop such as for () or until ().
Hereinafter, with reference to the flowchart of FIG. 4, the specific process flow of the intersection calculation process in step S103 will be described in more detail.

(ステップS1031)
まず、交点取得部310は、ポリゴン3次元座標取得処理を行う。言い換えれば、交点を計算する三角形ポリゴンの各頂点を取得する。
具体的には、例えば、上述の3次元の座標を示すvec4f型の変数であるp1、p2、p3に、triの各頂点の座標、tri.pos1、tri.pos2、tri.pos3をそれぞれ代入して記憶する。
(Step S1031)
First, the intersection acquisition unit 310 performs polygon three-dimensional coordinate acquisition processing. In other words, each vertex of the triangular polygon for which the intersection is calculated is acquired.
Specifically, for example, the coordinates of each vertex of tri are added to p1, p2, and p3, which are vec4f type variables indicating the above-described three-dimensional coordinates, tri. pos1, tri. pos2, tri. Each of pos3 is substituted and stored.

(ステップS1032)
次に、交点取得部310は、等高線の高さ取得処理を行う。
この処理においては、等高線下端高さD103の値に等高線間隔D105の値×変数hを計算した値を足して、上述のx−z平面の高さ、すなわち「等高線の高さ」を計算する。
具体例を挙げて説明すると、等高線の高さを示す変数(変数hline_point)を用意して、以下の式(1)を計算して、「等高線の高さ」を求める。

hline_point = hline_min + hline_width×h …… 式(1)
(Step S1032)
Next, the intersection acquisition unit 310 performs contour line height acquisition processing.
In this processing, the height of the above-described xz plane, that is, “the height of the contour line” is calculated by adding the value of the contour line interval D105 × the value of the variable h to the value of the contour line lower end height D103.
To explain with a specific example, a variable indicating the height of the contour line (variable hline_point) is prepared, and the following equation (1) is calculated to obtain “the height of the contour line”.

hline_point = hline_min + hline_width × h (1)

(ステップS1033)
次に、交点取得部310は、線分p1、p2にx−z平面との交点があるかを判定する。
つまり、この判定では、頂点p1とp2とを結ぶ線分に、等高線の高さに応じたx−z平面に平行な面との交点があるかどうかを判定する。
具体的に記載すると、左手座標系におけるy=hline_pointの面と、線分p1、p2との交点があるかを判定する。
(Step S1033)
Next, the intersection acquisition unit 310 determines whether the line segments p1 and p2 have intersections with the xz plane.
That is, in this determination, it is determined whether or not the line segment connecting the apexes p1 and p2 has an intersection with a plane parallel to the xz plane according to the height of the contour line.
More specifically, it is determined whether there is an intersection between the plane of y = hline_point in the left-handed coordinate system and the line segments p1 and p2.

(ステップS1034)
ステップS1033の判定がYESの場合、交点取得部310は、交点の座標を交点座標D102に追加する処理を行う。
具体例を挙げて説明すると、交点取得部310は、交点があった場合には、交点座標D102に(例えばhline_list[変数h][頂点数num]として)記憶する。そして、ここでは、さらに交点の数(本実施の形態では頂点数numの値)をインクリメントする。
(Step S1034)
If the determination in step S1033 is YES, the intersection acquisition unit 310 performs a process of adding the coordinates of the intersection to the intersection coordinates D102.
Explaining with a specific example, when there is an intersection, the intersection acquisition unit 310 stores the intersection in the intersection coordinates D102 (for example, as hline_list [variable h] [vertex number num]). In this case, the number of intersection points (in this embodiment, the value of the vertex number num) is further incremented.

(ステップS1035)
ステップS1033の判断がNOの場合、又はステップS1034の処理が行われた後、交点取得部310は、線分p2、p3にx−z平面との交点があるかを判定する。
つまり、この判定では、頂点p2とp3とを結ぶ線分に、等高線の高さに応じたx−z平面に平行な面との交点があるかどうかを判定する。
具体的に記載すると、左手座標系におけるy=hline_pointの面と、線分p2、p3との交点があるかを判定する。
(Step S1035)
If the determination in step S1033 is NO, or after the processing in step S1034, the intersection acquisition unit 310 determines whether the line segments p2 and p3 have intersections with the xz plane.
That is, in this determination, it is determined whether or not the line segment connecting the apexes p2 and p3 has an intersection with a plane parallel to the xz plane according to the height of the contour line.
More specifically, it is determined whether there is an intersection between the plane of y = hline_point in the left-handed coordinate system and the line segments p2 and p3.

(ステップS1036)
ステップS1035の判断がYESの場合、交点取得部310は、交点の座標を交点座標D102に追加する処理を行う。
具体的に記すと、この処理は、ステップS1034と同様に、交点取得部310が、交点があった場合に、交点座標D102に(例えば配列hline_list[変数h][頂点数num]として)記憶する。そして、交点の数(ここでは頂点数numの値)をインクリメントする。
(Step S1036)
If the determination in step S1035 is YES, the intersection acquisition unit 310 performs processing for adding the coordinates of the intersection to the intersection coordinates D102.
Specifically, in this process, as in step S1034, when there is an intersection, the intersection acquisition unit 310 stores it in the intersection coordinate D102 (for example, as an array hline_list [variable h] [number of vertices num]). . Then, the number of intersection points (here, the value of the vertex number num) is incremented.

(ステップS1037)
ステップS1035の判断がNOの場合、または、ステップS1036の処理が行われた後、交点取得部310は、線分p3、p1にx−z平面との交点があるかを判定する。
つまり、この判定では、頂点p3とp1とを結ぶ線分に、等高線の高さに応じたx−z平面に平行な面との交点があるかどうかを判定する。
具体的に記載すると、左手座標系におけるy=hline_pointの面と、線分p3、p1との交点があるかを判定する。
(Step S1037)
When the determination in step S1035 is NO, or after the process in step S1036 is performed, the intersection acquisition unit 310 determines whether the line segments p3 and p1 have intersections with the xz plane.
That is, in this determination, it is determined whether or not the line connecting the vertices p3 and p1 has an intersection with a plane parallel to the xz plane according to the height of the contour line.
More specifically, it is determined whether there is an intersection between the plane of y = hline_point in the left-handed coordinate system and the line segments p3 and p1.

(ステップS1038)
ステップS1037の判断がYESの場合、交点取得部310は、交点の座標をD102に追加する処理を行う。
具体的には、この処理もステップS1034と同様に、交点取得部310が、交点があった場合に交点座標D102に(例えばhline_list[変数h][頂点数num]として)記憶する。そして、交点の数(ここでは頂点数numの値)をインクリメントする。
(Step S1038)
If the determination in step S1037 is YES, the intersection acquisition unit 310 performs a process of adding the coordinates of the intersection to D102.
Specifically, as in step S1034, the intersection acquisition unit 310 stores this processing in the intersection coordinate D102 (for example, as hline_list [variable h] [vertex number num]) when there is an intersection. Then, the number of intersection points (here, the value of the vertex number num) is incremented.

(ステップS1039)
ステップS1037の判断がNOの場合、又はステップS1038の処理が行われた後、交点取得部310は、すべてのポリゴンを処理しているか判定する。
具体例を挙げて説明すると、配列(tris[])に設定されている変数tri「.next」がNULLになっているか等について判定を行う。
ステップS1039の判断がNoの場合は、次のポリゴンについて、ループ内の処理を繰り返す。具体的には、配列(tris[])に設定される変数triがtri「.next」として設定され、上述のステップS1031〜S1038の処理を行う。
逆にステップS1039の判断がYesの場合は、交点計算処理を終了する。
以上の交点計算処理により、交点取得部310は、変数hに係る所定の高さ毎に、等高線状の線ポリゴンの交点座標を記憶することができる。
(Step S1039)
When the determination in step S1037 is NO, or after the processing in step S1038 is performed, the intersection acquisition unit 310 determines whether all the polygons are processed.
To explain with a specific example, it is determined whether or not the variable tri “.next” set in the array (tris []) is NULL.
If the determination in step S1039 is No, the processing in the loop is repeated for the next polygon. Specifically, the variable tri set in the array (tris []) is set as tri “.next”, and the processes in steps S1031 to S1038 described above are performed.
Conversely, if the determination in step S1039 is Yes, the intersection calculation process is terminated.
Through the intersection calculation processing described above, the intersection acquisition unit 310 can store the intersection coordinates of contour line polygons for each predetermined height related to the variable h.

図5を参照すると、このステップS103の状態で、交点座標D102の各交点(頂点)をコリジョンオブジェクト450と一緒に点ポリゴンのように描画した例である。
ここで、変数hが所定の値における交点座標D102の各交点を描画した各交点群を、交点1000として示す。
交点1000の頂点の状態では、点の数が少なく、このまま各点を結んで線を引くと、ギザギザした直線の集まりとして描画されることが推測できる。
Referring to FIG. 5, in the state of step S103, each intersection (vertex) of the intersection coordinate D102 is drawn together with the collision object 450 like a point polygon.
Here, each intersection group in which each intersection of the intersection coordinates D102 with the variable h being a predetermined value is depicted as an intersection 1000.
In the state of the vertex of the intersection 1000, the number of points is small, and it can be inferred that if the lines are drawn by connecting the points as they are, they are drawn as a collection of jagged lines.

(ステップS104)
ここでまた図3を参照して説明すると、高さポリゴン作成部125の交点ソート部320は、交点ソート・中点補完処理を行う。
この交点ソート・中点補完処理は、主に交点ソート処理と中点補完処理を含んでおり、上述の交点の座標から、より曲線に近い等高線状の頂点の集合を得ることができる。
以下で、図6のフローチャートと、図7A〜図7Eの概念図を参照して、ステップ104の交点ソート・中点補完処理の具体的な処理の内容について具体例を挙げて説明する。なお、以下の説明において、図7Aを参照し、変数hの値における交点座標D102に記憶されている交点の数が4つある場合について説明する。
(Step S104)
Here, with reference to FIG. 3 again, the intersection sorting unit 320 of the height polygon creating unit 125 performs intersection sorting / middle point complement processing.
This intersection sort / midpoint complementation processing mainly includes intersection sort processing and midpoint complementation processing, and a set of contour vertices closer to a curve can be obtained from the coordinates of the above-mentioned intersection points.
In the following, with reference to the flowchart of FIG. 6 and the conceptual diagrams of FIGS. 7A to 7E, specific processing contents of the intersection sorting / midpoint complementing processing in step 104 will be described with specific examples. In the following description, a case where there are four intersection points stored in the intersection coordinate D102 in the value of the variable h will be described with reference to FIG. 7A.

(ステップS1041)
まず、交点ソート部320は、距離取得初期値設定処理を行う。
図7Bを参照し、具体例を挙げて説明すると、まず、交点ソート部320は、3次元空間の座標を示す上述のvec4f型の変数Xと変数start_posを用意する。
交点ソート部320は、各交点との距離を計算するための座標を変数Xに代入する。すなわち、例えば、ゴルフゲームの場合は、仮想空間内のグリーンに設定されるカップの3次元空間の座標情報などを変数Xに代入する。
なお、変数Xには所定の座標(例えば仮想視点(ビューポイント)の位置)から一番遠い座標を入力し、変数start_posに所定の座標を代入することも可能である。
(Step S1041)
First, the intersection sorting unit 320 performs a distance acquisition initial value setting process.
With reference to FIG. 7B, a specific example will be described. First, the intersection sorting unit 320 prepares the above-described vec4f type variable X and variable start_pos indicating the coordinates of the three-dimensional space.
The intersection sorting unit 320 substitutes the coordinates for calculating the distance to each intersection into the variable X. That is, for example, in the case of a golf game, the coordinate information of the three-dimensional space of the cup set to green in the virtual space is substituted into the variable X.
It is also possible to input a coordinate farthest from a predetermined coordinate (for example, the position of the virtual viewpoint (viewpoint)) for the variable X and substitute the predetermined coordinate for the variable start_pos.

その後、交点ソート部320は、変数Xの座標から一番距離が大きい(遠い)最遠点の交点を、変数hの値における交点座標D102から検索して、変数start_posにその交点の座標を代入する。
図7Bの例においては、この最遠点の交点が、始点Sとなり、変数start_posには、始点Sの座標が代入される。
Thereafter, the intersection sorting unit 320 searches the intersection of the farthest point that is the longest (far) from the coordinate of the variable X from the intersection coordinate D102 in the value of the variable h, and substitutes the coordinate of the intersection for the variable start_pos. To do.
In the example of FIG. 7B, the intersection of the farthest points becomes the start point S, and the coordinates of the start point S are substituted into the variable start_pos.

(ステップS1042)
次に、交点ソート部320は、交点ソート処理を行う。
図7Cを参照すると、交点ソート部320は、例えば、変数hの値における交点座標D102の交点が、変数Xの座標を基準として遠い点から近い点にするようにソートを行う。
すなわち、ある座標から一番離れた頂点である交点を始点として、そこから一番近い交点を次の頂点とし、これらの交点を並べるようにソートする。この例では、交点ソート部320は、始点Sから、頂点P1、頂点P2、終点Gの順になるようにソートする。
(Step S1042)
Next, the intersection sort part 320 performs an intersection sort process.
Referring to FIG. 7C, the intersection sorting unit 320 performs sorting so that, for example, the intersection of the intersection coordinates D102 in the value of the variable h is a point close to a point far from the coordinates of the variable X.
That is, the intersection point which is the vertex farthest from a certain coordinate is set as the starting point, the closest intersection point is set as the next vertex point, and sorting is performed so that these intersection points are arranged. In this example, the intersection sorting unit 320 sorts from the start point S in the order of the vertex P1, the vertex P2, and the end point G.

(ステップS1043)
次に、交点ソート部320は、全ての交点を処理したか判定する。すなわち、変数hの値における交点座標D102の配列のすべての交点についてのソートを終えたかについて、判定を行う。
Yesの場合、交点ソート部320は、処理をステップS1044に進める。
Noの場合、交点ソート部320は、処理をステップS1042に戻してソートを続ける。
(Step S1043)
Next, the intersection sorting unit 320 determines whether all intersections have been processed. That is, it is determined whether or not the sorting has been completed for all the intersections in the array of intersection coordinates D102 at the value of the variable h.
In the case of Yes, the intersection sort part 320 advances a process to step S1044.
In No, intersection sort part 320 returns processing to Step S1042, and continues sorting.

図7Cの例においては、ソートを終えた時点で、交点ソート部320は、変数hの値における交点座標D102について、始点S、頂点P1、頂点P2、終点Gのような順番になるようにソートする。   In the example of FIG. 7C, when the sorting is finished, the intersection sorting unit 320 sorts the intersection coordinates D102 in the value of the variable h so as to be in the order of the start point S, the vertex P1, the vertex P2, and the end point G. To do.

なお、ここでは、説明を容易にするために、選択ソートのようなアルゴリズムを用いて交点をソートする例について示している。しかし、このソートに関しては、バブルソートやクイックソート等のソート手法をすべて用いることができる。
本発明の第1の実施の形態に係る描画方法では、コリジョンオブジェクト450を用いるので、交点が少ないため、選択ソートやバブルソートを用いても、処理時間は殆ど問題にならない。
Here, for ease of explanation, an example is shown in which intersection points are sorted using an algorithm such as selection sorting. However, all sort methods such as bubble sort and quick sort can be used for this sort.
In the drawing method according to the first embodiment of the present invention, since the collision object 450 is used, since there are few intersections, the processing time hardly poses a problem even if the selection sort or the bubble sort is used.

また、上述の交点ソート・中点補完処理においては、所定の点からの距離を基にソートを行う例について示しているが、これに限られるものではない。
また、交点ソート処理については、コリジョンオブジェクト450からコリジョンオブジェクトD101を取得するときに、所定の座標からの距離でソートして、変数hの値における交点座標D102を選択する際に自動的に所定の座標を基準として、その所定の座標の近くから遠くの座標の順番、又は所定の座標の遠くから近くの座標の順番で取得するようにすることもできる。
また、交点ソート処理に代えて、変数hの値における交点座標D102の最短距離の交点同士を、ダイクストラ法のような手法を用いて接続することもできる。
また、交点ソート処理や上述のダイクストラ法の処理により、所定の距離以上離れた頂点があった場合には、変数hの値における交点座標D102を基にして、等高線状の線ポリゴンを分割することもできる。この分割は、各交点を結んだ線分の交差判定を行って、交差する線が出る箇所で分割することも可能である。これにより、例えば、ゴルフゲームの場合は、仮想空間に設定されるグリーンに隆起が2カ所以上あるような場合にも対応可能である。
また、ソートにより一番近い交点同士を結んでも、交点の数が多い場合には、間違った点を選択することもあり得る。このため、交点を結んだ線分の交差判定を行って、例えば、正しいと思われる交点を順にたどるといった所定のルールを用いて(ヒューリスティック) に処理することも可能である。
また、そもそも交点を判定するのではなく、コリジョンオブジェクト450と交差する線分を取得して、これらの線分の情報を備えたまま、線分同士の頂点を接続するようにすることも可能である。
In the above-described intersection sort / middle point complement process, an example is shown in which sorting is performed based on the distance from a predetermined point, but the present invention is not limited to this.
As for the intersection sorting process, when the collision object D101 is acquired from the collision object 450, the intersection object D101 is sorted by the distance from a predetermined coordinate and automatically selected when the intersection coordinate D102 in the value of the variable h is selected. The coordinates may be acquired in the order of coordinates far from the predetermined coordinates or in the order of coordinates near the predetermined coordinates.
Further, instead of the intersection sorting process, the intersections of the shortest distance of the intersection coordinates D102 in the value of the variable h can be connected using a technique such as the Dijkstra method.
In addition, when there are vertices that are more than a predetermined distance by the intersection sorting process or the Dijkstra method described above, the contour line polygon is divided based on the intersection coordinates D102 in the value of the variable h. You can also. In this division, it is also possible to perform the intersection determination of the line segments connecting the intersections and to divide at the places where the intersecting lines appear. Thereby, for example, in the case of a golf game, it is possible to deal with a case where there are two or more ridges in the green set in the virtual space.
Even if the closest intersections are connected by sorting, if the number of intersections is large, an incorrect point may be selected. For this reason, it is also possible to perform (heuristic) processing using a predetermined rule of performing intersection determination of line segments connecting intersections and, for example, following intersections that are considered to be correct.
In addition, instead of determining the intersection in the first place, it is also possible to acquire line segments that intersect with the collision object 450 and connect the vertices of the line segments while maintaining the information of these line segments. is there.

(ステップS1044)
ステップS1043でYESと判定されたとき、又は、後述するS1045の判定でNOと判定されたとき、交点ソート部320は、中点補完処理を行う。
図7Dを参照して説明すると、この中点補完処理は、ソートした頂点を、平均をとってならす(均す)処理である。
すなわち、変数hにおける交点座標D102の配列に各交点の1つ前の交点の座標と足して2で割る中点を求めて、それぞれの配列に代入(更新)する。
(Step S1044)
When it is determined YES in step S1043, or when it is determined NO in the determination of S1045 described later, the intersection sorting unit 320 performs a midpoint complement process.
Referring to FIG. 7D, this midpoint complementing process is a process of averaging (equalizing) the sorted vertices.
That is, the middle point divided by 2 by adding the coordinates of the intersection point immediately before each intersection point to the array of intersection point coordinates D102 in the variable h is obtained and assigned (updated) to each array.

(ステップS1045)
次に、交点ソート部320は、全ての交点を処理したか判定する。
具体的には、変数hの各値における交点座標D102(配列hline_list[変数h][])のすべての交点についての中点に更新したかについて、判定を行う。
Yesの場合、交点ソート部320は、交点ソート・中点補完処理を終了する。また、終点を、変数hにおける交点座標D102の配列に追加する。
Noの場合、交点ソート部320は、処理をステップS1044に戻して中点補完処理を続ける。
(Step S1045)
Next, the intersection sorting unit 320 determines whether all intersections have been processed.
Specifically, it is determined whether or not the intersection coordinates D102 (array hline_list [variable h] []) at each value of the variable h are updated to the midpoints.
In the case of Yes, the intersection sort unit 320 ends the intersection sort / middle point complement process. Further, the end point is added to the array of intersection coordinates D102 in the variable h.
In No, the intersection sort part 320 returns a process to step S1044, and continues a midpoint complementation process.

図7Eを参照すると、実際に変数hの値における交点座標D102について、中点補完処理を行った後の各頂点の様子を示している。変数hにおける交点座標D102の配列は、最終的に、始点S、中点になった頂点P1、中点になった頂点P2、中点P3、新たな終点Gのような状態で記憶される。   FIG. 7E shows the state of each vertex after the midpoint interpolation processing is actually performed for the intersection coordinate D102 in the value of the variable h. The array of intersection coordinates D102 in the variable h is finally stored in a state such as a start point S, a vertex P1 that is a middle point, a vertex P2 that is a middle point, a middle point P3, and a new end point G.

図8を参照して説明すると、中点補完処理を行った後に、交点座標D102の各頂点を図5と同様に、点ポリゴンのように描画した例である。また、変数hの値における交点座標D102の各交点を描画したものを、中点補完後の頂点1010として示す。
図8の中点補完後の頂点1010の状態では、図5の交点1000と比べて、かなりなめらかな曲線に近づいており、また、中点を計算して新たな頂点として更新することで、各頂点間の距離のばらつきが抑えられるため、曲線にしやすくなるという効果が得られる。
Explaining with reference to FIG. 8, after performing the midpoint complement processing, each vertex of the intersection coordinate D102 is drawn like a point polygon as in FIG. In addition, a drawing of each intersection point of the intersection point coordinates D102 in the value of the variable h is shown as a vertex 1010 after the midpoint complementation.
In the state of the vertex 1010 after complementing the middle point in FIG. 8, the curve is closer to a smoother curve than the intersection 1000 in FIG. 5, and each midpoint is calculated and updated as a new vertex. Since the variation in the distance between the vertices is suppressed, an effect that it becomes easy to form a curve is obtained.

(ステップS105)
ここで、また図3を参照して説明すると、色決定部325は、色決定処理を行う。
すなわち、この色決定処理においては、例えばゴルフゲームの場合、所定の頂点であるグリーン上のカップの座標と、等高線状の線ポリゴンの高さ(軸方向の距離)との差の値を用いて、等高線状の線ポリゴンの色を決める。
ここで図9(a)を参照して具体例を挙げて説明すると、ここでは、変数hの値における交点座標D102の各交点に設定するための色を計算する。つまり、色の計算については、等高線の高さ(等高線の高さを示す変数である変数hline_point)の値を用いて計算を行う。高さポリゴン作成部125は、この等高線の高さを示すhline_pointと、上述の変数Xに入れたのと同様の所定の座標のy座標とを比較して、変数hの値における交点座標D102の各要素(各交点)に対する色を計算する。たとえば、ゴルフゲームの場合は、所定の座標をカップの座標(水準原点)として、この座標との高さの違いを、「cm」のような所定単位で所定の計算式から計算する。そして、カップの座標との差により、カップの座標と差がない場合は薄い色で表現し、高い場合は赤色を濃くして表現し、低い場合は青色を濃くして表現する。
なお、色の選択方法として、例えば、予め記憶部に上述の等高線の高さの値に対応したインデックス番号と、そのインデックス番号に対応した画像情報(R成分、G成分、B成分、α(透明度)成分)とを対応づける色情報テーブルを格納しておくとともに、その色情報テーブルを参照して、等高線状の線ポリゴンの色を選択して表現することもできる。また、上述の画像情報のRGB各成分及びα成分の代わりに色相、彩度、明度、輝度の値を成分として設定することもできる。
(Step S105)
Here, referring to FIG. 3 again, the color determination unit 325 performs color determination processing.
That is, in this color determination process, for example, in the case of a golf game, the value of the difference between the coordinates of the cup on the green that is the predetermined vertex and the height (distance in the axial direction) of the contour line polygon is used. Determine the color of the contour line polygon.
Here, a specific example will be described with reference to FIG. 9A. Here, a color to be set at each intersection of the intersection coordinates D102 in the value of the variable h is calculated. In other words, the color is calculated using the value of the contour line height (variable hline_point which is a variable indicating the height of the contour line). The height polygon creating unit 125 compares the hline_point indicating the height of the contour line with the y coordinate of the predetermined coordinate similar to the variable X described above, and calculates the intersection coordinate D102 in the value of the variable h. Calculate the color for each element (each intersection). For example, in the case of a golf game, a predetermined coordinate is set as a cup coordinate (level origin), and a difference in height from this coordinate is calculated in a predetermined unit such as “cm” from a predetermined calculation formula. When there is no difference from the coordinates of the cup due to the difference from the coordinates of the cup, the color is expressed by a light color, when it is high, the color is expressed by dark red, and when it is low, the color is expressed by dark blue.
As a color selection method, for example, an index number corresponding to the above-described contour line height value in advance in the storage unit and image information (R component, G component, B component, α (transparency) corresponding to the index number are stored. In addition to storing a color information table that associates the component) with the component), the color of the contour line polygon can be selected and expressed with reference to the color information table. Further, instead of the RGB components and the α component of the image information described above, values of hue, saturation, brightness, and luminance can be set as components.

図9(b)を参照すると、ゴルフゲームのグリーンに実際に等高線状の線ポリゴンを描画した例を示している。
この図9(b)では、カップの近くの線が薄くなっており、グリーンの内側に描かれている等高線状の線ポリゴンが色が濃くなり、実際には赤く表示されており、高さが高くなっていることが容易に判断できる。
なお、等高線の高さはx−z平面の高さには限られない。すなわち、軸方向の距離としては、任意の座標系の一次元の距離を用いることが可能である。また、等高線状の線ポリゴンの色としては、等高線の高さや仮想視点との距離を用いて、より単純に濃淡で表現することもできる。また、地面オブジェクト400の色を参照して、これを高さにより所定の割合で反転したり、色成分を高さにより加算や減算する等の画像処理を行って、等高線状の線ポリゴンを描画することも可能である。
FIG. 9B shows an example in which contour line polygons are actually drawn on the green of the golf game.
In FIG. 9 (b), the line near the cup is thin, and the contour line polygon drawn inside the green is darker and actually displayed in red. It can be easily determined that it is high.
The height of the contour line is not limited to the height of the xz plane. That is, as a distance in the axial direction, a one-dimensional distance in an arbitrary coordinate system can be used. Further, the color of the contour line polygon can be expressed more simply by using the height of the contour line and the distance from the virtual viewpoint. Also, with reference to the color of the ground object 400, the contour line polygon is drawn by performing image processing such as reversing this at a predetermined ratio depending on the height, and adding or subtracting the color component depending on the height. It is also possible to do.

(ステップS106)
ふたたび図3を参照して説明すると、高さポリゴン作成部125の視点方向移動部330は、視点方向移動処理を行う。
この視点方向移動処理においては、等高線状の線ポリゴンが潜ってしまわないようにするために、仮想視点(ビューポイント)方向に、交点座標D102の各頂点の座標を移動する処理を行う。
以下で、図10のフローチャートを参照して、ステップS106の視点方向移動処理の具体的な処理の流れについて説明する。
(Step S106)
Returning to FIG. 3, the viewpoint direction moving unit 330 of the height polygon creating unit 125 performs the viewpoint direction moving process.
In this viewpoint direction movement process, a process of moving the coordinates of each vertex of the intersection coordinate D102 in the virtual viewpoint (viewpoint) direction is performed in order to prevent the contour line polygons from diving.
Hereinafter, a specific processing flow of the viewpoint direction movement processing in step S106 will be described with reference to the flowchart of FIG.

(ステップS1061)
まず、視点方向移動部330は、座標初期設定処理を行う。
つまり、視点方向移動部330は交点座標の各頂点の座標として、3つの座標を設定する。
具体例を挙げて説明すると、視点方向移動部330は、変数hの値における交点座標D102の各頂点の座標として、座標1、座標2、座標3として、上述のvec4f型の変数first_pos、second_pos、third_posを設定する。
そして、ループのカウンタ用の変数iを設定し、以下の、ループ内の処理を実行する。
(Step S1061)
First, the viewpoint direction moving unit 330 performs a coordinate initial setting process.
That is, the viewpoint direction moving unit 330 sets three coordinates as coordinates of each vertex of the intersection coordinates.
Specifically, the viewpoint direction moving unit 330 uses the above-described vec4f type variables first_pos, second_pos, as coordinates 1, 2 and 3 as coordinates of each vertex of the intersection coordinate D102 in the value of the variable h. Set third_pos.
Then, a variable i for the loop counter is set, and the following processing in the loop is executed.

(ステップS1062)
ここで、視点方向移動部330は、座標1、2、3設定処理を行う。
すなわち、この処理においては、視点方向移動部330は、座標1、座標2、座標3として設定した値のうち、3つ連続する座標の値を選択する処理を行う。
具体例を挙げて説明すると、視点方向移動部330は、この座標1、座標2、座標3として、変数first_pos、second_pos、third_posに、変数iに係る3つ連続する変数hの値における交点座標D102の要素のアドレス(番地)を選択して割り当てる。
(Step S1062)
Here, the viewpoint direction moving unit 330 performs coordinates 1, 2, and 3 setting processing.
That is, in this process, the viewpoint direction moving unit 330 performs a process of selecting three consecutive coordinate values among the values set as the coordinate 1, the coordinate 2, and the coordinate 3.
Explaining with a specific example, the viewpoint direction moving unit 330 uses the coordinates 1, 2, and 3 as the coordinates first_pos, second_pos, and third_pos, and the intersection coordinates D102 in the values of three consecutive variables h related to the variable i. Select and assign the address (address) of the element.

(ステップS1063)
次に、視点方向移動部330は、座標1、2、3移動処理を行う。
この座標1、2、3移動処理においては、視点方向移動部330は、まずは、選択した3点の真ん中の頂点(上述の具体例では、変数second_pos)に合わせて3点を仮想視点、又はビュー座標系のビューポイント等であるカメラの座標の方向に所定の値(方向ベクトル座標)だけ移動させる。
この視点又はカメラの方向に移動させるための所定の値としては、コリジョンオブジェクト450又は地面オブジェクト400のポリゴンの大きさの最大値、コリジョンオブジェクト450又は地面オブジェクト400の視点方向の高さの差の最大値等を基に、等高線状の線ポリゴンが潜ってしまわないようにするための値を計算することができる。
(Step S1063)
Next, the viewpoint direction moving unit 330 performs coordinate 1, 2, and 3 movement processing.
In the coordinate 1, 2, and 3 movement processing, the viewpoint direction moving unit 330 first sets the three points to the virtual viewpoint or view according to the middle vertex (the variable second_pos in the above specific example) of the selected three points. The camera is moved by a predetermined value (direction vector coordinates) in the direction of the camera coordinates, such as the viewpoint of the coordinate system.
The predetermined value for moving in the direction of the viewpoint or the camera includes the maximum value of the polygon size of the collision object 450 or the ground object 400, and the maximum difference in height of the collision object 450 or the ground object 400 in the viewpoint direction. Based on the value and the like, it is possible to calculate a value for preventing the contour line polygon from being hidden.

(ステップS1064)
次に、視点方向移動部330は、すべての頂点を処理し終えたかについて判定する。
具体的には、for()やuntil()ループにおいて、変数iが変数hにおける交点座標D102の頂点数numと同じか大きくなったについて、判定を行う。
Yesの場合、視点方向移動部330は、視点方向移動処理を終了する。
Noの場合、視点方向移動部330は、変数iをインクリメントし、処理をステップS1062に戻してステップS1062〜ステップS1064のループの処理を続ける。
(Step S1064)
Next, the viewpoint direction moving unit 330 determines whether all vertices have been processed.
Specifically, in the for () or until () loop, the determination is made regarding whether the variable i is equal to or greater than the number of vertices num of the intersection coordinates D102 in the variable h.
In the case of Yes, the viewpoint direction moving unit 330 ends the viewpoint direction moving process.
In No, the viewpoint direction moving part 330 increments the variable i, returns a process to step S1062, and continues the process of the loop of step S1062-step S1064.

以上のような視点方向移動処理により、ステップS105で中点での更新をしたため、頂点が地面オブジェクト400やコリジョンオブジェクト450に潜って描画されなくなることを防ぐことが可能になる。
また、3点の真ん中の頂点を基準として仮想視点の方向に移動するため、描画時の誤差が少なく、地面オブジェクト400やコリジョンオブジェクト450から離れて浮き上がっているように見えることもなく、真実の等高線のようにぴったりと地面上に描画されているようなレンダリング結果を得ることができる。なお、視点方向移動処理は3点ごとに実行するものに限らず、2点以上の複数の頂点であれば、視点方向移動処理を実行することができる。また、必ずしも真ん中の頂点を基準としなくても、各頂点について仮想視点の方向に移動するような処理を行うことも可能である。
By the viewpoint direction movement processing as described above, since the midpoint is updated in step S105, it is possible to prevent the vertex from being drawn under the ground object 400 or the collision object 450.
In addition, since it moves in the direction of the virtual viewpoint with reference to the middle vertex of the three points, there is little error in drawing, and it does not appear to float away from the ground object 400 or the collision object 450, and the true contour line The rendering result can be obtained as if it is drawn exactly on the ground. Note that the viewpoint direction movement process is not limited to being executed every three points, and the viewpoint direction movement process can be executed as long as it is a plurality of two or more vertices. Further, it is possible to perform a process for moving each vertex in the direction of the virtual viewpoint without necessarily using the middle vertex as a reference.

なお、この視点方向移動処理を行わない場合は、地面オブジェクト400と物体オブジェクト410が分離して備えられているようなデータ構造の場合、描画順の変更により対応可能である。たとえば、(1)地面オブジェクト400を描画、(2)等高線状の線ポリゴンを描画、(3)物体オブジェクト410を描画、というような手段も考えられる。
しかしながら、ポリゴンをzバッファ等を用いて描画する近年のグラフィックプロセッサの描画方法においては、描画順を分けて描画を行うのは現実的ではなく、後述するように高さポリゴン作成部125を影の作成に用いた場合等にはzバッファの誤差のせいで表示品質が著しく落ちる。
すなわち、本発明の第1の実施の形態に係る描画方法のように、視点方向移動処理を用いることで、複数のオブジェクトの描画順を考慮せず、zバッファの誤差も気にせずに、描画品質を保ったポリゴン上への輪郭線の描画が可能になるという顕著な効果が得られる。
また、このような表示品質は、特に画像表現の高品質さが求められるゲーム装置の分野では非常に有効である。
In addition, when this viewpoint direction movement process is not performed, in the case of a data structure in which the ground object 400 and the object object 410 are separately provided, it can be handled by changing the drawing order. For example, means such as (1) drawing the ground object 400, (2) drawing a contour line polygon, and (3) drawing the object object 410 may be considered.
However, in recent graphic processor drawing methods that draw polygons using a z-buffer or the like, it is not realistic to draw in a separate drawing order. When used for production, the display quality is significantly degraded due to errors in the z buffer.
That is, as in the drawing method according to the first embodiment of the present invention, by using the viewpoint direction movement process, drawing without considering the drawing order of a plurality of objects and not worrying about errors in the z buffer. A remarkable effect is obtained in that a contour line can be drawn on a polygon with high quality.
Such display quality is very effective especially in the field of game devices that require high image representation quality.

(ステップS107)
また図3に戻って説明すると、次に、曲線作成部340は、曲線作成処理を実行する。
ここで、図11の概念図を参照して、曲線作成処理について、より具体的に説明する。
(Step S107)
Returning to FIG. 3, next, the curve creation unit 340 executes a curve creation process.
Here, the curve creation process will be described more specifically with reference to the conceptual diagram of FIG.

図11のように、変数hの値における交点座標D102の各頂点として、頂点a、頂点b、頂点c、頂点dが記憶されているとする。
この上で、まず、頂点a、頂点b、頂点cの3点に対して曲線にする曲線作成処理を行う例について説明する。
最初に、曲線作成部340は、頂点aと頂点bの中点である頂点sの座標を計算する。
次に、曲線作成部340は、頂点bと頂点cの中点である頂点tの座標を計算する。
次に、曲線作成部340は、頂点sと頂点tの中点である頂点iの座標を計算する。
そして、次に、曲線作成部340は、頂点aの座標を曲線描画のための新たな線ポリゴン用のリンクリストp[変数h][]に頂点a、頂点s、頂点iの座標をそれぞれ代入してゆく。
As shown in FIG. 11, it is assumed that a vertex a, a vertex b, a vertex c, and a vertex d are stored as each vertex of the intersection coordinate D102 in the value of the variable h.
First, an example will be described in which a curve creation process for making a curve with respect to three points of the vertex a, the vertex b, and the vertex c is performed.
First, the curve creation unit 340 calculates the coordinates of the vertex s, which is the midpoint between the vertex a and the vertex b.
Next, the curve creation unit 340 calculates the coordinates of the vertex t, which is the midpoint between the vertex b and the vertex c.
Next, the curve creation unit 340 calculates the coordinates of the vertex i, which is the midpoint between the vertex s and the vertex t.
Next, the curve creation unit 340 substitutes the coordinates of the vertex a, the vertex s, and the vertex i in the link list p [variable h] [] for a new line polygon for drawing a curve. I will do it.

この上で、曲線作成部340は、次の連続する3点を頂点i、頂点c、頂点dの3点に対して、上述の処理を繰り返すことができる。
このような処理により、通常のベジェ曲線の計算よりもより高速に、曲線の計算が可能になる。
On this basis, the curve creation unit 340 can repeat the above-described processing for the next three consecutive points, i.e., vertex i, vertex c, and vertex d.
Such processing makes it possible to calculate the curve at a higher speed than the normal Bezier curve calculation.

なお、曲線作成処理を別のクラスやルーチンにて実行することもできる。この場合は、頂点a〜iを示す変数は、スコープが可視である、グローバル変数等を用いることができる。
また、この曲線描画処理については、計算スピードを厭わなければ、3点を用いて曲線に均してゆく手法以外にも、B−スプライン曲線や、ベジェ曲線の計算を行う等の処理を用いることも可能である。
It should be noted that the curve creation process can be executed by another class or routine. In this case, as the variable indicating the vertices a to i, a global variable having a visible scope can be used.
For the curve drawing process, if the calculation speed is not limited, a process such as calculating a B-spline curve or a Bezier curve may be used in addition to the method of smoothing the curve using three points. Is also possible.

(ステップS108)
ここで再び図3を参照して説明すると、次に、終点処理部350は、終点処理を行う。
この終点処理において、終点処理部350は、例えばゴルフゲームの場合、グリーンの山の頂上付近で等高線が環状(円状態)になる場合についての処理を行う。すなわち、上述の曲線作成処理では、端の点から連続する3点について近づける(平均する、丸める)処理を行っているために、端同士をつなげた部分の線ポリゴンの描画になめらかさが欠けるという問題に対応する。具体的に説明すると、線ポリゴン用の端の頂点(リンクリストp[変数h][0])と、もう一方の端の頂点(線ポリゴン用のリンクリストp[変数h][曲線の頂点数])をつなぐと、直線上に見えてしまうという問題の処理を行うものである。
ここでは、線ポリゴン用のもう一方の端の頂点(線ポリゴン用のリンクリストp[変数h][曲線の頂点数])と、線ポリゴン用の端の頂点(線ポリゴン用のリンクリストp[変数h][0])と、線ポリゴン用の端の頂点に隣接する頂点(線ポリゴン用のリンクリストp[変数h][1])とを連続する3点として、曲線作成処理の3点を近づける処理を行うことで対処可能である。また、この3点だけではまだ直線に見える場合には、さらに周囲の頂点を用いて3点を近づける処理を行うことができる。
(Step S108)
Here, referring to FIG. 3 again, next, the end point processing unit 350 performs end point processing.
In this end point processing, for example, in the case of a golf game, the end point processing unit 350 performs processing for a case where contour lines are circular (circular) near the top of the green mountain. That is, in the above-described curve creation process, the process of making the three consecutive points from the end points approach (average and round) is performed, so that the drawing of the line polygon where the ends are connected is not smooth. Respond to the problem. More specifically, the vertex at the end for the line polygon (link list p [variable h] [0]) and the vertex at the other end (the link list p for line polygon p [variable h] [number of vertices of the curve] ]), The problem that the image appears on a straight line is processed.
Here, the vertex of the other end for the line polygon (link list p for line polygon p [variable h] [number of vertices of curve]) and the vertex for the end of line polygon (link list p [for line polygon p [ The variable h] [0]) and the vertex adjacent to the end vertex for the line polygon (link list p [variable h] [1] for the line polygon) are three consecutive points, and three points of the curve creation processing This can be dealt with by performing a process of bringing In addition, when the three points still appear to be a straight line, it is possible to perform a process of bringing the three points closer by using peripheral vertices.

以上のように、高さポリゴン作成部125は、ステップS102〜S108を実行することで、等高線状の線ポリゴンを一本作成することが可能である。上述したように、このループを繰り返すことで、等高線の本数分だけ、等高線状の線ポリゴンを作成できる。
すべての等高線状の線ポリゴンを作成した後、高さポリゴン作成部125は、グラフィックプロセッサ160を用いて、グラフィックメモリ170上に、この等高線状の線ポリゴンを描画する。
これにより、本発明の第1の実施の形態に係る描画処理を終了する。
As described above, the height polygon creation unit 125 can create one contour line polygon by executing steps S102 to S108. As described above, by repeating this loop, contour line polygons corresponding to the number of contour lines can be created.
After creating all the contour line polygons, the height polygon creation unit 125 uses the graphic processor 160 to draw the contour line polygons on the graphic memory 170.
Thus, the drawing process according to the first embodiment of the present invention is finished.

図12を参照して説明すると、各頂点間を線分で結んだ曲線1020である、等高線状の線ポリゴンを描画した例を示す。
このように、図5の単にx−z平面の交点を取得しただけの場合や、図8の単に中点で補完しただけの場合に比べて、非常になめらかな曲線を描画できることが分かる。
なお、ステップS104の中点補完処理と、ステップS107の曲線に均す「中点で更新する処理」を繰り返すことにより、さらに曲線に近い線ポリゴンを描画することが可能である。
Referring to FIG. 12, an example is shown in which a contour line polygon, which is a curve 1020 connecting the vertices with line segments, is drawn.
Thus, it can be seen that a very smooth curve can be drawn as compared with the case where the intersection point of the xz plane in FIG. 5 is simply acquired or the case where the intersection point in FIG. 8 is simply complemented.
It is possible to draw a line polygon that is closer to the curve by repeating the midpoint interpolation process in step S104 and the “update process at the midpoint” leveled to the curve in step S107.

以上のように構成することで、以下のような効果を得ることができる。
まず、ベジェ曲線、B−スプライン曲線、及び従来技術1を用いた描画方法においては、頂点を更新してそのまま曲線で補間するように構成されている。
このため、頂点を更新したときに元の頂点の位置情報とのずれが大きいまま曲線補間をするため、正確な描画ができないという問題があった。
これにより、特にベジェ曲線、B−スプライン曲線、及び従来技術1の描画方法を仮想3次元空間における画像処理方法として用いようとすると、更新後に頂点が他のポリゴンに埋もれてしまうという問題があった。このため、描画の精度やクォリティが落ちるという問題があった。
With the configuration described above, the following effects can be obtained.
First, the drawing method using the Bezier curve, the B-spline curve, and the prior art 1 is configured to update the vertex and interpolate with the curve as it is.
For this reason, there is a problem that accurate drawing cannot be performed because curve interpolation is performed with a large deviation from the position information of the original vertex when the vertex is updated.
As a result, when the Bezier curve, the B-spline curve, and the drawing method of the prior art 1 are used as the image processing method in the virtual three-dimensional space, the vertex is buried in another polygon after the update. . For this reason, there is a problem that the accuracy and quality of drawing are lowered.

これに対して、本発明の第1の実施の形態に係る描画方法では、頂点間の中点をとって頂点を更新した後で、仮想視点又はカメラ方向に所定のベクトル座標(方向ベクトル座標)を頂点に加えてから曲線を補間する。
これにより、更新後の頂点が地面オブジェクト等に埋まってしまい描画できなくなったり、浮き上がりすぎて見えることを防止できる。
また、更新後の頂点をカメラ方向に向かせてから曲線を描画するので、複雑な処理なく精度良く曲線を描画できるという効果が得られる。
また、ポリゴンの交点の頂点をソートしてから、一筆書きのように描画を行うことで、等高線状の線ポリゴンを、容易な処理で作成可能であるという効果が得られる。このために、3次元空間の平面との交差の計算の後、内外判定等を行って、輪郭線を抽出するなどの複雑な処理を行う場合に比べて、演算コストを抑えることが可能になる。
このため、高度な描画能力をもつ、近年のグラフィックプロセッサで、細かいポリゴンの地面オブジェクト400の上に、容易に等高線状の線ポリゴンを描画することができる。
加えて、上述の第1の実施の形態においては、コリジョンオブジェクト450をトライアングルストリップのように面を構成する情報もあるものとして説明した。しかし、実際には、本発明の第1の実施の形態に係る描画方法では、交点を求めるポリゴンの集合体であるオブジェクトについて、頂点によりどうポリゴンの面を構成するかという情報がない、頂点のみの集合を用いても、等高線状の線ポリゴンを描画できるという効果が得られる。
On the other hand, in the drawing method according to the first embodiment of the present invention, after taking the midpoint between vertices and updating the vertices, predetermined vector coordinates (direction vector coordinates) in the virtual viewpoint or camera direction are obtained. Is added to the vertex and then the curve is interpolated.
As a result, it is possible to prevent the updated vertex from being buried in the ground object or the like so that it cannot be drawn or is too lifted.
In addition, since the curve is drawn after the updated vertex is directed toward the camera, it is possible to accurately draw the curve without complicated processing.
In addition, by sorting the vertices of the intersections of the polygons and then drawing like a single stroke, it is possible to create an contour line polygon with easy processing. For this reason, it is possible to reduce the calculation cost compared to the case where complicated processing such as extracting the contour line is performed by calculating inside / outside after calculating the intersection with the plane of the three-dimensional space. .
For this reason, it is possible to easily draw contour line polygons on a fine polygonal ground object 400 with a recent graphic processor having a high level of drawing ability.
In addition, in the above-described first embodiment, the collision object 450 has been described as having information that forms a surface like a triangle strip. However, in actuality, in the drawing method according to the first embodiment of the present invention, there is no information on how to form a polygon surface by vertices for an object that is a collection of polygons for which intersections are obtained, only vertices. Even if this set is used, it is possible to draw contour line polygons.

また、従来技術1では、ポリゴン描画のための精度が低いために、従来技術1を用いて等高線を描画して、単純にy座標を足したり引いたりして浮かせた場合には、地面オブジェクト400から浮き上がって見えたり、ところどころ埋もれるという描画品質(クォリティ)の低下が起こるという問題があった。
これに対して、本発明の第1の実施の形態に係る描画方法は、中点を求めた後の頂点を、視点又はカメラ方向のベクトルを加算して、視点方向に移動してから曲線を描画するために、描画の破綻が非常に少ないという効果が得られる。
Further, in the prior art 1, since the accuracy for polygon drawing is low, when the contour line is drawn using the prior art 1 and is simply floated by adding or subtracting the y coordinate, the ground object 400 is drawn. There is a problem that the drawing quality (quality) is lowered, that is, it appears that it floats up and is buried in some places.
On the other hand, the drawing method according to the first embodiment of the present invention adds the vector of the viewpoint or camera direction to the vertex after obtaining the midpoint, moves the viewpoint in the direction of the viewpoint, and then draws the curve. In order to draw, the effect that the failure of drawing is very small is acquired.

なお、上述の第1の実施の形態においては、高さポリゴン作成部125を等高線状の線ポリゴンを作成する例について説明したが、これに限られない。
本発明の第1の実施の形態の描画方法は、例えば、投影シャドウのように、ポリゴンと交点を求めて、その輪郭線を描画するような仮想3次元空間における画像処理方法にすべて応用可能である。投影シャドウを描画する場合は、影内部をトライアングルファン等のように分割して、暗く描画することで実現可能である。
また、本発明の第1の実施の形態の描画方法は、例えば、トゥーンシェーダのような写実的ではない輪郭線を強調したようなポリゴン描画においても用いることができる。たとえば、輪郭線にポリゴンの縁のギザギザが出ることを抑えることが可能である。
また、本発明の第1の実施の形態の描画方法は、ゲームに限られず、各種シミュレーション、医療画像から腫瘍の輪郭の推定、動画像の各フレームの差分から物体の形状を割り出すといった処理にも応用して用いることが可能である。
In the above-described first embodiment, the example in which the height polygon creating unit 125 creates contour line polygons has been described. However, the present invention is not limited to this.
The drawing method according to the first embodiment of the present invention can be applied to all image processing methods in a virtual three-dimensional space in which, for example, a polygon and an intersection are obtained and a contour line is drawn like a projection shadow. is there. Drawing a projected shadow can be realized by dividing the inside of the shadow like a triangle fan and drawing darkly.
The drawing method according to the first embodiment of the present invention can also be used for polygon drawing in which a non-realistic contour line such as a toon shader is emphasized. For example, it is possible to suppress the jagged edges of the polygon from appearing on the contour line.
In addition, the drawing method according to the first embodiment of the present invention is not limited to a game, and includes various simulations, estimation of a tumor outline from a medical image, and processing of determining the shape of an object from the difference of each frame of a moving image. It can be applied and used.

また、本発明の第1の実施の形態の描画方法での描画については、等高線状の線ポリゴンの描画について説明した。しかし、描画するポリゴンは、線ポリゴンには限られず、トライアングルストリップや柱状の厚みのある形状のポリゴンのオブジェクトであってもよい。   In addition, as for the drawing by the drawing method of the first embodiment of the present invention, the drawing of contour line polygons has been described. However, the polygon to be drawn is not limited to a line polygon, and may be a triangle strip or a polygonal object having a columnar thickness.

<第2の実施の形態>
次に、本発明の第2の実施の形態に係るゲーム装置10を用いた描画処理について説明する。
本発明の第2の実施の形態に係る描画処理では、始点・終点に係る処理を更に加えることにより、例えば、ゴルフゲームの場合は、カップの近くで等高線が環状になる場合に、よりなめらかな等高線状の線ポリゴンを得ることができる。
<Second Embodiment>
Next, a drawing process using the game apparatus 10 according to the second embodiment of the present invention will be described.
In the drawing processing according to the second embodiment of the present invention, by further adding processing related to the start point and end point, for example, in the case of a golf game, when the contour line is circular near the cup, it is smoother. A contour line polygon can be obtained.

〔本発明の第2の実施の形態におけるゲーム装置10の制御構成〕
本発明の第2の実施の形態に係る描画処理では、高さポリゴン作成部125は、本発明の第1の実施の形態に係るゲーム装置10の高さポリゴン作成部125の交点ソート部320、視点方向移動部330、終点処理部350について、さらなる処理を行わせることができる。
交点ソート部320は、図13のステップS205の始点・終点移動処理を行い、ソート後の交点の始点と終点をより近づけることで、等高線状の線ポリゴンをなめらかにする。
視点方向移動部330は、図13のステップS207の始点方向カメラ移動処理を行う。視点方向移動部330は、始点方向カメラ移動処理により、曲線のなめらかさに合わせた等高線状の線ポリゴンの視点方向への移動が可能になる。
終点処理部350は、後述するステップS209の始点・終点曲線化処理を行う。この始点・終点曲線化処理により、特に等高線状の線ポリゴンが環状になっている場合に、特に始点と終点とを結ぶ等高線状の線ポリゴンを、よりなめらかに描画することができる。
[Control Configuration of Game Device 10 in Second Embodiment of the Present Invention]
In the drawing processing according to the second embodiment of the present invention, the height polygon creation unit 125 is configured to have the intersection sorting unit 320 of the height polygon creation unit 125 of the game apparatus 10 according to the first embodiment of the present invention, Further processing can be performed on the viewpoint direction moving unit 330 and the end point processing unit 350.
The intersection sorting unit 320 performs the start point / end point movement process in step S205 of FIG. 13 and makes the contour line polygons smooth by bringing the sorted start point and end point closer to each other.
The viewpoint direction moving unit 330 performs the start point direction camera moving process in step S207 of FIG. The viewpoint direction moving unit 330 can move contour line-shaped line polygons in the viewpoint direction according to the smoothness of the curve by the start point direction camera movement process.
The end point processing unit 350 performs a start point / end point curving process in step S209 described later. By this start point / end point curving process, especially when the contour line polygon is circular, the contour line polygon connecting the start point and the end point can be drawn more smoothly.

また、高さポリゴン作成部125のデータ構成としては、本発明の第1の実施の形態と同様のデータ構成を用いることができる。
以下で、図13のフローチャートを参照して、本発明の第2の実施の形態に係る高さポリゴン作成部125の描画処理の流れについて詳しく説明する。
Further, as the data configuration of the height polygon creation unit 125, the same data configuration as that of the first embodiment of the present invention can be used.
Hereinafter, the flow of the drawing process of the height polygon creating unit 125 according to the second embodiment of the present invention will be described in detail with reference to the flowchart of FIG.

〔本発明の第2の実施の形態に係る描画処理〕
図13を参照すると、ゲーム装置10は、本発明の第2の実施の形態に係る描画処理であるステップS201〜S209の処理を実行する。
ここで、図3をもう一度参照すると、ステップS201はステップS101と、ステップS202はステップS102と、ステップS203はステップS103と、ステップS204はステップS104と、ステップS206はステップS105と、ステップS208はステップS107と同様な処理を行うことができる。
本発明の第2の実施の形態に係る描画処理においては、この上で、ステップS205、ステップS207、ステップS209の処理を行うことで、なめらかな等高線状の線ポリゴンを描画する。
以下で、ステップS205、ステップS207、ステップS209の各処理について詳しく説明する。
[Drawing Processing According to Second Embodiment of the Present Invention]
Referring to FIG. 13, the game device 10 executes the processes of steps S <b> 201 to S <b> 209 that are drawing processes according to the second embodiment of the present invention.
Here, referring again to FIG. 3, step S201 is step S101, step S202 is step S102, step S203 is step S103, step S204 is step S104, step S206 is step S105, and step S208 is step S107. The same processing can be performed.
In the drawing processing according to the second embodiment of the present invention, smooth contour line polygons are drawn by performing the processing of step S205, step S207, and step S209.
Below, each process of step S205, step S207, and step S209 is demonstrated in detail.

(ステップS205)
交点ソート部320は、ステップS205において、始点・終点移動処理を行う。
図14A〜図14Bを参照して説明すると、交点ソート部320は、上述の図7Eの交点ソート・中点補完処理後の状態と同様に、始点S、頂点P1、P2、P3、終点Gのような状態になった場合に、最終的な処理として始点・終点移動処理を行う。
交点ソート部320は、まず、始点Sと終点Gが近いかどうかについて判定する。この近いかどうかについては、始点Sと終点Gの距離が所定の距離以下であった場合や、各頂点間の距離の平均距離の数倍といった値以下であるような条件を用いて判定を行う。
始点Sと終点Gが近くなかった場合は、交点ソート部320は処理を次のステップS206に進める。
始点Sと終点Gが近かった場合は、交点ソート部320は、以下で説明する実際の始点・終点移動処理を行う。
(Step S205)
In step S205, the intersection sorting unit 320 performs start point / end point movement processing.
Referring to FIGS. 14A to 14B, the intersection sorting unit 320 sets the start point S, the vertices P1, P2, P3, and the end point G in the same manner as the state after the intersection sort / middle point complement process in FIG. 7E described above. In such a state, a start / end point movement process is performed as a final process.
The intersection sorting unit 320 first determines whether the start point S and the end point G are close. Whether the distance is close or not is determined using a condition where the distance between the start point S and the end point G is equal to or less than a predetermined distance or a value that is equal to or less than a value such as several times the average distance between vertices. .
If the start point S and the end point G are not close, the intersection sorting unit 320 advances the process to the next step S206.
When the start point S and the end point G are close to each other, the intersection sort unit 320 performs an actual start point / end point movement process described below.

図14Aを参照すると、実際の始点・終点移動処理においては:
交点ソート部320は、まず、始点Sと終点Gの中点Tを計算する。
次に、交点ソート部320は、始点Sと中点Tとの中点S’を計算する。
次に、交点ソート部320は、終点Gと中点Tとの中点G’を計算する。
この上で、図14Bを参照すると、
交点ソート部320は、始点Sの座標を、中点S'の座標に移動する。
また、交点ソート部320は、終点Gの座標を、中点G’の座標に移動する。
Referring to FIG. 14A, in the actual start / end point movement process:
The intersection sorting unit 320 first calculates the midpoint T of the start point S and the end point G.
Next, the intersection sorting unit 320 calculates a midpoint S ′ between the start point S and the midpoint T.
Next, the intersection sorting unit 320 calculates a midpoint G ′ between the end point G and the midpoint T.
On this, referring to FIG. 14B,
The intersection sorting unit 320 moves the coordinates of the starting point S to the coordinates of the middle point S ′.
In addition, the intersection sorting unit 320 moves the coordinates of the end point G to the coordinates of the middle point G ′.

このように、始点Sと終点Gを移動して、ソート後の交点の始点と終点をより近づけることで、等高線状の線ポリゴンが環状である場合に、よりなめらかに描画することができる。
また、始点Sと終点Gについても座標を移動するために、それ以外の等高線状の線ポリゴンの部位についても、なめらかに描画することができる。
In this way, by moving the start point S and the end point G and making the start point and end point of the intersection after sorting closer, it is possible to draw more smoothly when the contour line polygon is circular.
In addition, since the coordinates of the start point S and the end point G are also moved, other contour line polygon parts can be drawn smoothly.

(ステップS207)
視点方向移動部330は、ステップS207において、視点方向カメラ移動処理を行う。
この視点方向カメラ移動処理においては、上述の第1の実施の形態におけるステップS106の視点方向移動処理と同様の処理に加えて、カメラ方向への移動量を設定して、視点方向への等高線状の線ポリゴンの移動を行う。
このカメラ方向への移動量としては、視点方向移動部330は、上述の中点で更新する処理の回数を考慮した上で移動量を設定することができる。
以下で、この視点方向カメラ移動処理について、より詳しく説明する。
(Step S207)
In step S207, the viewpoint direction movement unit 330 performs viewpoint direction camera movement processing.
In this viewpoint direction camera movement processing, in addition to the processing similar to the viewpoint direction movement processing in step S106 in the first embodiment described above, a movement amount in the camera direction is set, and contour lines in the viewpoint direction are formed. Move the line polygon.
As the movement amount in the camera direction, the viewpoint direction moving unit 330 can set the movement amount in consideration of the number of times of updating at the above-described midpoint.
Hereinafter, this viewpoint direction camera movement processing will be described in more detail.

視点方向移動部330は、まず、頂点AをカメラCに移動させる例について説明する。カメラCは、上述のビューポイント(仮想視点)のような座標である。以下において、具体例を挙げて説明する。
頂点Aの座標を、例えば上述のvec4f型の変数Aposに代入する。また、カメラCの座標を、例えば上述のvec4f型の変数Cposに代入する。
この上で、カメラCから頂点AへのベクトルCAを、同様に上述のvec4f型の変数CAvecとして、このCAvecの値を以下の式(2)で求める。

CAvec = Cpos − Apos …… 式(2)
The viewpoint direction moving unit 330 will first describe an example in which the vertex A is moved to the camera C. The camera C has coordinates like the above-described viewpoint (virtual viewpoint). Hereinafter, a specific example will be described.
For example, the coordinates of the vertex A are substituted into the above-described vec4f type variable Apos. Further, the coordinates of the camera C are substituted into the above-described vec4f type variable Cpos, for example.
Then, the vector CA from the camera C to the vertex A is similarly used as the above-mentioned vec4f type variable CAvec, and the value of this CAvec is obtained by the following equation (2).

CAvec = Cpos−Apos (2)

ベクトルCAの単位ベクトルを上述のvec4f型の変数CAvec_Eとし、このCAvec_Eの値を以下の式(3)で求める。

CAvec_E = CAvec ÷ |CAvec| …… 式(3)
The unit vector of the vector CA is the above-mentioned vec4f type variable CAvec_E, and the value of this CAvec_E is obtained by the following equation (3).

CAvec_E = CAvec ÷ | CAvec | (3)

ここで、視点方向移動部330は、カメラ方向への移動量を計算し、例えば上述のvec4f型の変数(例えば、変数transfer)に代入する。
このカメラ方向への移動量の値(方向ベクトル座標)としては、等高線状の線ポリゴンが浮き上がらないよう、また、他のポリゴンに埋没しないように微調整した値として、概ねベクトルの大きさが0.25のような所定の値を設定することができる。
さらに、視点方向移動部330は、中点で更新する処理回数と3点で曲線にする回数に比例して、カメラ方向への移動量の値を大きくする。例えば、概ね1.5倍のような比率で、移動量の値を大きくすることができる。
また、コリジョンオブジェクト450と、地面オブジェクト400のポリゴンのなめらかさの差、具体的にはポリゴン数の比率等を用いて計算することもできる。
Here, the viewpoint direction moving unit 330 calculates the amount of movement in the camera direction, and substitutes it into, for example, the above-described vec4f type variable (for example, variable transfer).
As the value of the amount of movement in the camera direction (direction vector coordinates), the vector size is approximately 0 as a value finely adjusted so that contour line polygons do not float and are not buried in other polygons. A predetermined value such as .25 can be set.
Further, the viewpoint direction moving unit 330 increases the value of the amount of movement in the camera direction in proportion to the number of times of updating at the midpoint and the number of times of making a curve at three points. For example, the value of the movement amount can be increased at a ratio of approximately 1.5 times.
It is also possible to calculate using the difference in smoothness between the polygons of the collision object 450 and the ground object 400, specifically the ratio of the number of polygons.

次に、視点方向移動部330は、頂点Aの移動後の座標の値をA’とすると、以下の式(4)を用いて、A’の値を求める。

A’ = Apos + (CAvec_E × transfer) …… 式(4)

この上で、視点方向移動部330は、A’の値を、変数Aposに代入する。
この処理を、頂点毎に繰り返して、視点方向移動部330は、視点方向カメラ移動処理を終了する。
Next, the viewpoint direction moving unit 330 obtains the value of A ′ using the following equation (4), where A ′ is the coordinate value after the vertex A is moved.

A ′ = Apos + (Cavec_E × transfer) (4)

Then, the viewpoint direction moving unit 330 substitutes the value of A ′ for the variable Apos.
This process is repeated for each vertex, and the viewpoint direction movement unit 330 ends the viewpoint direction camera movement process.

この視点方向カメラ移動処理により、コリジョンオブジェクト450がより荒くても、等高線状の線ポリゴンが地面オブジェクト400等に埋まったり上空に飛び出て見えるようにすることなく、確実に描画することができる。また、中点で更新する処理を複数回行って、地面オブジェクト400と等高線状の線ポリゴンとの誤差が生じた場合でも、等高線状の線ポリゴンを地面オブジェクト400に埋もれたり飛び出て見えることなく描画可能である。
すなわち、線のなめらかさに合わせた等高線状の線ポリゴンの視点方向への移動が可能になる。
By this viewpoint direction camera movement processing, even if the collision object 450 is rougher, the contour line polygon can be surely drawn without being buried in the ground object 400 or the like, or appearing in the sky. Further, even if an error between the ground object 400 and the contour line polygon is generated by performing the update process at the midpoint multiple times, the contour line polygon is drawn without appearing to be buried or popping out of the ground object 400. Is possible.
That is, it is possible to move the contour line polygon in the viewpoint direction according to the smoothness of the line.

(ステップS209)
終点処理部350は、ステップS209において、始点・終点曲線化処理を行う。
この始点・終点曲線化処理については、始点と終点が近く、始点と終点とを結ぶ場合に、よりなめらかに等高線状の線ポリゴンを描画する。
以下で、図15のフローチャートと、図16A〜図16Cを参照して、ステップS209の始点・終点曲線化処理についてより詳しく説明する。
(Step S209)
In step S209, the end point processing unit 350 performs a start point / end point curving process.
With respect to the start point / end point curving process, when the start point and the end point are close and the start point and the end point are connected, the contour line polygon is drawn more smoothly.
Hereinafter, with reference to the flowchart of FIG. 15 and FIGS. 16A to 16C, the start point / end point curving process in step S209 will be described in more detail.

(ステップS2091)
まず、終点処理部350は、始点と終点が近いかどうかについて判定する。この判定は、ステップS205の判定と同様に行う。すなわち、等高線状の線ポリゴンが環状になっているか否かの判定を行い、その結果に応じて、異なった処理に移行する。
つまり、上述の判定がYesの場合、等高線状の線ポリゴンが環状なので、終点処理部350は、処理をステップS2092に進める。逆に上述の判定がNoの場合、環状ではないので、終点処理部350は、処理をステップS2096に進める。
(Step S2091)
First, the end point processing unit 350 determines whether the start point and the end point are close. This determination is performed in the same manner as the determination in step S205. That is, it is determined whether or not the contour line polygon is circular, and the process proceeds to a different process depending on the result.
That is, when the above determination is Yes, since the contour line polygon is annular, the end point processing unit 350 advances the process to step S2092. Conversely, when the above determination is No, the end point processing unit 350 advances the process to step S2096 because it is not annular.

(ステップS2092)
終点処理部350は、等高線状の線ポリゴンが環状の場合は、まず、始点再移動処理を行う。
図16Aを参照して、上述の例のように始点S、頂点P1、頂点P2、頂点P3、終点Gがある場合について、始点再移動処理の計算を説明する。
終点処理部350は、まず、終点G、始点S、頂点P1を用いて、終点Gと始点Sとの中点を求め、始点Sと頂点P1との中点を求め、この2つの中点の中点S’を求める。
この上で、終点処理部350は、始点Sの座標を、中点S’の座標に移動する。
(Step S2092)
When the contour line polygon is annular, the end point processing unit 350 first performs a start point re-moving process.
With reference to FIG. 16A, the calculation of the start point re-movement process will be described in the case where there are the start point S, the vertex P1, the vertex P2, the vertex P3, and the end point G as in the above example.
The end point processing unit 350 first obtains a midpoint between the end point G and the start point S using the end point G, the start point S, and the vertex P1, obtains a midpoint between the start point S and the vertex P1, and determines the midpoint between the two midpoints. Find the midpoint S '.
Then, the end point processing unit 350 moves the coordinates of the starting point S to the coordinates of the middle point S ′.

(ステップS2093)
次に、曲線作成部340は、上述の実施の形態1に係る図3のステップS107と同様に、曲線作成処理を行う。
図16Bを参照して説明すると、実際には、曲線作成部340は、移動された始点Sから、終点Gの手前の頂点まで、曲線作成処理を行う。すなわち、図16Bの中点Tと終点Gとは、線分で結ばない。
(Step S2093)
Next, the curve creation unit 340 performs a curve creation process in the same manner as step S107 in FIG. 3 according to the first embodiment described above.
Referring to FIG. 16B, actually, the curve creation unit 340 performs a curve creation process from the moved start point S to the vertex just before the end point G. That is, the middle point T and the end point G in FIG. 16B are not connected by a line segment.

(ステップS2094)
次に、終点処理部350は、曲線端点・始点曲線化処理を行う。
図16Cを参照して説明すると、終点処理部350は、中点T、終点G、始点Sの3つの頂点を用いて、曲線を作成する。
(Step S2094)
Next, the end point processing unit 350 performs a curve end point / start point curving process.
Referring to FIG. 16C, the end point processing unit 350 creates a curve using the three vertices of the midpoint T, the end point G, and the start point S.

(ステップS2095)
次に、終点処理部350は、曲線端点・始点結合処理を行う。
ここでは、終点処理部350は、上述のステップS2094で作成された最後の頂点と、始点Sとを接続する。これにより、なめらかな環状に接続された等高線状の線ポリゴンを作成することができる。
以上により、始点・終点曲線化処理を終了する。
(Step S2095)
Next, the end point processing unit 350 performs a curve end point / start point combining process.
Here, the end point processing unit 350 connects the last vertex created in step S2094 described above and the start point S. Thereby, contour line polygons connected in a smooth annular shape can be created.
The start point / end point curving process is thus completed.

(ステップS2096)
曲線作成部340は、始点Sと終点Gが近くない場合、すなわち等高線状の線ポリゴンが環状でない場合には、ステップS107と同様に、曲線作成処理を行う。
図17を参照すると、上述のステップS2093とは異なり始点Sは移動されない状態で、曲線作成部340は、通常の曲線作成処理を行う。
(Step S2096)
When the start point S and the end point G are not close, that is, when the contour line polygon is not circular, the curve creation unit 340 performs a curve creation process as in step S107.
Referring to FIG. 17, unlike step S2093 described above, the curve creation unit 340 performs a normal curve creation process in a state where the start point S is not moved.

(ステップS2097)
次に、終点処理部350は、曲線端点・終点結合処理を行う。
すなわち、図17を参照すると、上述のステップS2096で作成された最後の頂点と、終点Gとを接続する。
これにより、環がつながっていない、線状の等高線状の線ポリゴンが作成できる。
以上により、始点・終点曲線化処理を終了する。
(Step S2097)
Next, the end point processing unit 350 performs a curve end point / end point combining process.
That is, referring to FIG. 17, the last vertex created in step S2096 described above and the end point G are connected.
As a result, it is possible to create linear contour line polygons in which the rings are not connected.
The start point / end point curving process is thus completed.

図18を参照すると、本発明の第2の実施の形態に係る描画処理により描画した等高線状の線ポリゴンを示す。
環状になった等高線状の線ポリゴンについても、かなり円に近いようになめらかに描画されていることが分かる。
このように、本発明の第2の実施の形態に係る描画処理により、上述のように、例えばゴルフゲームの場合、カップの側等で等高線状の線ポリゴンが環状になっていても、破綻が少なく表示することができる。
FIG. 18 shows contour line polygons drawn by the drawing processing according to the second embodiment of the present invention.
It can be seen that the contour line polygons that are circular are also drawn smoothly so as to be quite close to a circle.
As described above, the drawing process according to the second embodiment of the present invention, as described above, for example, in the case of a golf game, even if the contour line polygons are annular on the cup side or the like, the failure occurs. Less can be displayed.

なお、本発明の第2の実施の形態に係る描画処理においても、コリジョンオブジェクト450のポリゴンが粗い場合には、中点での更新を繰り返すことで、より滑らかな等高線を描画することができる。すなわち、ステップS204の中点補完処理と〜ステップS209の始点・終点曲線化処理を繰り返して、なめらかな等高線状の線ポリゴンを描画することが可能である。
また、ステップS204の中点補完処理と、ステップS205の始点・終点移動処理とは、実行する順番を変えることもできる。
Even in the rendering process according to the second embodiment of the present invention, when the polygon of the collision object 450 is rough, it is possible to render a smoother contour by repeating the update at the midpoint. That is, it is possible to draw a smooth contour line polygon by repeating the midpoint interpolation process in step S204 and the start / end curve processing in step S209.
Further, the execution order of the midpoint complementing process in step S204 and the start / end point moving process in step S205 can be changed.

なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。   It should be noted that the configuration and operation of the above-described embodiment are examples, and it is needless to say that the configuration and operation can be appropriately changed and executed without departing from the gist of the present invention.

本発明の第1の実施の形態に係るゲーム装置10の制御構成を示すブロック図である。It is a block diagram which shows the control structure of the game device 10 which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係るデータ構成を示す概念図である。It is a conceptual diagram which shows the data structure which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る描画方法の各処理を示すフローチャートである。It is a flowchart which shows each process of the drawing method which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る交点計算処理の各処理を示すフローチャートである。It is a flowchart which shows each process of the intersection calculation process which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る交点を点ポリゴンとして描画した画面例である。It is an example of the screen which drawn the intersection which concerns on the 1st Embodiment of this invention as a point polygon. 本発明の第1の実施の形態に係る交点ソート・中点補完処理の各処理を示すフローチャートである。It is a flowchart which shows each process of the intersection sort / middle point complement process which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る変数hの値における交点座標D102の頂点の例である。It is an example of the vertex of the intersection coordinate D102 in the value of the variable h which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る所定の座標から頂点までの距離を示す概念図である。It is a conceptual diagram which shows the distance from the predetermined coordinate to the vertex which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る所定の座標から頂点までの距離による各頂点のソートを示す概念図である。It is a conceptual diagram which shows the sort of each vertex by the distance from the predetermined coordinate to the vertex which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る中点補完処理の概念図である。It is a conceptual diagram of the midpoint complementation process which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る中点補完処理を行った後の各頂点の様子を示す概念図である。It is a conceptual diagram which shows the mode of each vertex after performing the midpoint complementation process which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る中点補完処理後の頂点を点ポリゴンとして描画した画面例である。It is the example of a screen which drawn the vertex after the midpoint complementation processing concerning the 1st embodiment of the present invention as a point polygon. 本発明の第1の実施の形態に係る等高線状の線ポリゴンの色の計算方法を示す概念図である。It is a conceptual diagram which shows the calculation method of the color of the contour line polygon which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る視点方向移動処理の各処理を示すフローチャートである。It is a flowchart which shows each process of the viewpoint direction movement process which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る曲線作成処理を説明する概念図である。It is a conceptual diagram explaining the curve creation process which concerns on the 1st Embodiment of this invention. 本発明の第1の実施の形態に係る等高線状の線ポリゴンを描画した画面例である。It is the example of a screen which drawn the contour line polygon according to the 1st embodiment of the present invention. 本発明の第2の実施の形態に係る描画方法の各処理を示すフローチャートである。It is a flowchart which shows each process of the drawing method which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る始点・終点移動処理を説明する概念図である。It is a conceptual diagram explaining the starting point / ending point movement process which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る始点・終点移動処理を行った後の各頂点の様子を示す概念図である。It is a conceptual diagram which shows the mode of each vertex after performing the starting point / ending point movement process which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る始点・終点曲線化処理の各処理を示すフローチャートである。It is a flowchart which shows each process of the starting point / end point curving process based on the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る始点・終点曲線化処理の始点再移動処理を説明する概念図である。It is a conceptual diagram explaining the starting point re-moving process of the starting point / end point curving process which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る始点再移動処理後の曲線作成処理を説明する概念図である。It is a conceptual diagram explaining the curve creation process after the starting point re-moving process which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施の形態に係る曲線端点・始点曲線化処理を説明する概念図である。It is a conceptual diagram explaining the curve end point / starting point curving process according to the second embodiment of the present invention. 本発明の第2の実施の形態に係る始点・終点曲線化処理の始点Sと終点Gが近くない場合の処理の概念図である。It is a conceptual diagram of a process when the start point S and the end point G of the start point / end point curving process according to the second embodiment of the present invention are not close. 本発明の第2の実施の形態に係る等高線状の等高線状の線ポリゴンを描画した画面例である。It is the example of a screen which drawn the contour line-shaped line polygon of the contour line shape concerning the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

10 ゲーム装置
100 CPU
110 主記憶部
120 補助記憶部
125 高さポリゴン作成部
130 ブートROM
140 ペリフェラルI/F
150 バスアービタ
160 グラフィックプロセッサ
162 ジオメトリ部
164 レンダリング部
170 グラフィックメモリ
180 オーディオプロセッサ
190 オーディオメモリ
200 通信I/F
310 交点取得部
320 交点ソート部
325 色決定部
330 視点方向移動部
340 曲線作成部
350 終点処理部
400 地面オブジェクト
410 物体オブジェクト
450 コリジョンオブジェクト
1000 交点
1010 中点補完後の頂点
1020 曲線
10 game machine 100 CPU
110 Main storage unit 120 Auxiliary storage unit 125 Height polygon creation unit 130 Boot ROM
140 Peripheral I / F
150 Bus Arbiter 160 Graphic Processor 162 Geometry Unit 164 Rendering Unit 170 Graphic Memory 180 Audio Processor 190 Audio Memory 200 Communication I / F
310 intersection acquisition unit 320 intersection sorting unit 325 color determination unit 330 viewpoint direction movement unit 340 curve creation unit 350 end point processing unit 400 ground object 410 object object 450 collision object 1000 intersection 1010 vertex 1020 curve after midpoint interpolation

Claims (10)

仮想3次元空間に複数のポリゴンから形成されるオブジェクトと仮想視点を配置し、前記仮想視点から見た前記オブジェクトの画像を生成する画像処理方法であって、
各ポリゴンの頂点座標を取得し、該頂点座標に基づき、前記各ポリゴンの辺を求め、前記各ポリゴンの辺ごとに、所定の高さ情報を備えた複数の点の座標情報を求める工程と、
所定の座標情報を基準として前記座標情報をソートする工程と、
ソートされた座標情報のうち、1の座標情報と該1の座標情報と近接する他の座標情報との中点をとって座標情報を更新する工程と、
更新された座標情報に、前記仮想視点又は前記仮想視点の座標情報に基づく方向ベクトル座標を加える工程と、
方向ベクトル座標が加えられた座標情報から線を描画する工程と
をコンピュータの制御手段に実行させることを特徴とする画像処理方法。
An image processing method for arranging an object formed from a plurality of polygons and a virtual viewpoint in a virtual three-dimensional space and generating an image of the object viewed from the virtual viewpoint,
Obtaining vertex coordinates of each polygon, obtaining sides of each polygon based on the vertex coordinates, obtaining coordinate information of a plurality of points having predetermined height information for each side of each polygon;
Sorting the coordinate information on the basis of predetermined coordinate information;
Updating the coordinate information by taking the midpoint between the coordinate information of one of the sorted coordinate information and the other coordinate information close to the coordinate information of the one;
Adding the direction vector coordinates based on the virtual viewpoint or the coordinate information of the virtual viewpoint to the updated coordinate information;
And a step of drawing a line from the coordinate information to which the direction vector coordinates are added.
前記座標情報を求める工程は、
前記各ポリゴンのそれぞれの辺において、高さ情報を備えたポリゴンとの交差点である座標情報を求める工程
をコンピュータの制御手段に実行させることを特徴とする請求項1に記載の画像処理方法。
The step of obtaining the coordinate information includes:
The image processing method according to claim 1, further comprising: causing a computer control unit to execute a step of obtaining coordinate information that is an intersection with a polygon having height information on each side of each polygon.
前記座標情報を更新する工程は、
前記ソートされた座標情報のうち、ソートを開始した座標情報とソートを終了した座標情報とが所定距離内に位置するとき、前記各座標情報間の距離を小さくする工程
を更にコンピュータの制御手段に実行させることを特徴とする請求項1又は請求項2に記載の画像処理方法。
The step of updating the coordinate information includes:
Among the sorted coordinate information, when the coordinate information that has started sorting and the coordinate information that has been sorted are located within a predetermined distance, a step of reducing the distance between the coordinate information is further provided to the computer control means. The image processing method according to claim 1, wherein the image processing method is executed.
前記方向ベクトル座標を加える工程は、
前記更新された座標情報に方向ベクトルを加える工程
をコンピュータの制御手段に実行させることを特徴とする請求項1乃至3のいずれかに記載の画像処理方法。
The step of adding the direction vector coordinates includes:
4. The image processing method according to claim 1, further comprising: causing a control unit of a computer to execute a step of adding a direction vector to the updated coordinate information. 5.
前記線を描画する工程は、
前記方向ベクトル座標を加えられた座標情報の3点ごとに線を描画する工程
をコンピュータの制御手段に実行させることを特徴とする請求項1乃至4のいずれかに記載の画像処理方法。
The step of drawing the line includes
5. The image processing method according to claim 1, further comprising: causing a control unit of a computer to execute a step of drawing a line at every three points of the coordinate information to which the direction vector coordinates are added.
前記線を描画する工程は、
線の描画を開始した座標情報と描画を終了した座標情報とが所定距離内に位置するとき、
前記線の描画を開始した座標情報と前記描画を終了した座標情報を更新し、該更新された各座標情報間を直線で描画する工程
を更にコンピュータの制御手段に実行させることを特徴とする請求項1乃至5のいずれかに記載の画像処理方法。
The step of drawing the line includes
When the coordinate information that started drawing the line and the coordinate information that finished drawing are located within a predetermined distance,
The coordinate information at which drawing of the line is started and the coordinate information at which the drawing is finished are updated, and a step of drawing a straight line between the updated pieces of coordinate information is further executed by a control means of a computer. Item 6. The image processing method according to any one of Items 1 to 5.
前記線を描画する工程は、
前記仮想3次元空間内に設定される所定の座標情報との距離に応じて前記線の色相、明度、彩度のいずれか1つを変化させる工程
を更にコンピュータの制御手段に実行させることを特徴とする請求項1乃至6のいずれかに記載の画像処理方法。
The step of drawing the line includes
The step of changing any one of hue, brightness, and saturation of the line according to the distance from the predetermined coordinate information set in the virtual three-dimensional space is further caused to be executed by a computer control means. An image processing method according to any one of claims 1 to 6.
仮想3次元空間に複数のポリゴンから形成されるオブジェクトと仮想視点を配置し、前記仮想視点から見た前記オブジェクトの画像を生成する画像処理装置であって、
前記画像処理装置は、
各ポリゴンの頂点座標を取得し、該頂点座標に基づき、前記各ポリゴンの辺を求め、前記各ポリゴンの辺ごとに高さ情報を有する複数の点の座標情報を求める手段と、
所定の座標情報を基準として前記座標情報をソートする手段と、
ソートされた座標情報のうち、1の座標情報と該1の座標情報と近接する他の座標情報との中点をとって座標情報を更新する手段と、
更新された座標情報に、前記仮想視点又は前記仮想視点の座標情報に基づく方向ベクトル座標を加える手段と、
方向ベクトル座標が加えられた座標情報から線を描画する手段と、
を備えることを特徴とする画像処理装置。
An image processing apparatus that arranges an object formed from a plurality of polygons and a virtual viewpoint in a virtual three-dimensional space, and generates an image of the object viewed from the virtual viewpoint,
The image processing apparatus includes:
Means for obtaining vertex coordinates of each polygon, obtaining sides of each polygon based on the vertex coordinates, and obtaining coordinate information of a plurality of points having height information for each side of each polygon;
Means for sorting the coordinate information based on predetermined coordinate information;
Means for updating the coordinate information by taking the midpoint of one coordinate information of the sorted coordinate information and the other coordinate information close to the one coordinate information;
Means for adding direction vector coordinates based on the virtual viewpoint or the coordinate information of the virtual viewpoint to the updated coordinate information;
Means for drawing a line from coordinate information to which direction vector coordinates are added;
An image processing apparatus comprising:
仮想3次元空間に複数のポリゴンから形成されるオブジェクトと仮想視点を配置し、前記仮想視点から見た前記オブジェクトの画像を生成する画像処理プログラムであって、
各ポリゴンの頂点座標を取得し、該頂点座標に基づき、前記各ポリゴンの辺を求め、前記各ポリゴンの辺ごとに所定の高さ情報を有する複数の点の座標情報を求める手順と、
所定の座標情報を基準として前記座標情報をソートする手順と、
ソートされた座標情報のうち、1の座標情報と該1の座標情報と近接する他の座標情報との中点をとって座標情報を更新する手順と、
更新された座標情報に、前記仮想視点又は前記仮想視点の座標情報に基づく方向ベクトル座標を加える手順と、
方向ベクトルの座標が加えられた座標情報から線を描画する手順と
をコンピュータの制御手段に実行させる画像処理プログラム。
An image processing program for arranging an object formed from a plurality of polygons and a virtual viewpoint in a virtual three-dimensional space, and generating an image of the object viewed from the virtual viewpoint,
Obtaining the vertex coordinates of each polygon, obtaining the sides of each polygon based on the vertex coordinates, and obtaining the coordinate information of a plurality of points having predetermined height information for each side of each polygon;
A procedure for sorting the coordinate information based on predetermined coordinate information;
A procedure for updating the coordinate information by taking the midpoint of one coordinate information and the other coordinate information close to the one coordinate information among the sorted coordinate information;
A procedure for adding direction vector coordinates based on the virtual viewpoint or the coordinate information of the virtual viewpoint to the updated coordinate information;
An image processing program for causing a computer control means to execute a procedure for drawing a line from coordinate information to which a direction vector coordinate is added.
請求項9記載の画像処理プログラムをコンピュータに実行させるためのプログラムをコンピュータ読取可能に構成された記録媒体。   A recording medium configured to allow a computer-readable program for causing a computer to execute the image processing program according to claim 9.
JP2008312614A 2008-12-08 2008-12-08 Image processing method, image processing device, image processing program, and storage medium Withdrawn JP2010134872A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008312614A JP2010134872A (en) 2008-12-08 2008-12-08 Image processing method, image processing device, image processing program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008312614A JP2010134872A (en) 2008-12-08 2008-12-08 Image processing method, image processing device, image processing program, and storage medium

Publications (1)

Publication Number Publication Date
JP2010134872A true JP2010134872A (en) 2010-06-17

Family

ID=42346082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008312614A Withdrawn JP2010134872A (en) 2008-12-08 2008-12-08 Image processing method, image processing device, image processing program, and storage medium

Country Status (1)

Country Link
JP (1) JP2010134872A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018509016A (en) * 2014-12-13 2018-03-29 フォックス スポーツ プロダクションズ,インコーポレイティッド System and method for tracking and tagging targets in broadcast
CN116523738A (en) * 2023-07-03 2023-08-01 腾讯科技(深圳)有限公司 Task triggering method and device, storage medium and electronic equipment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018509016A (en) * 2014-12-13 2018-03-29 フォックス スポーツ プロダクションズ,インコーポレイティッド System and method for tracking and tagging targets in broadcast
CN116523738A (en) * 2023-07-03 2023-08-01 腾讯科技(深圳)有限公司 Task triggering method and device, storage medium and electronic equipment
CN116523738B (en) * 2023-07-03 2024-04-05 腾讯科技(深圳)有限公司 Task triggering method and device, storage medium and electronic equipment

Similar Documents

Publication Publication Date Title
US10733691B2 (en) Fragment shaders perform vertex shader computations
CN108351864B (en) Concave geometric dense paving
TWI584223B (en) Method and system of graphics processing enhancement by tracking object and/or primitive identifiers,graphics processing unit and non-transitory computer readable medium
JP2020091877A (en) Varying effective resolution by screen location by changing active color sample count within multiple render targets
US8223149B2 (en) Cone-culled soft shadows
EP2105905A2 (en) Image generation apparatus
TW201816724A (en) Method for efficient construction of high resolution display buffers
KR20140139553A (en) Visibility-based state updates in graphical processing units
JP2002236934A (en) Method and device for providing improved fog effect in graphic system
US10621761B2 (en) Computer-readable recording medium, computer apparatus, and computer processing method for placing object in virtual space and displaying placed object according to display mode
US7158133B2 (en) System and method for shadow rendering
CN112245926A (en) Virtual terrain rendering method, device, equipment and medium
US7327364B2 (en) Method and apparatus for rendering three-dimensional images of objects with hand-drawn appearance in real time
US9721187B2 (en) System, method, and computer program product for a stereoscopic image lasso
US9489771B2 (en) Techniques for spatially sorting graphics information
CN111445563A (en) Image generation method and related device
JP2023525945A (en) Data Optimization and Interface Improvement Method for Realizing Augmented Reality of Large-Scale Buildings on Mobile Devices
JP2010134872A (en) Image processing method, image processing device, image processing program, and storage medium
JP2005228110A (en) Information processing method and apparatus
JP5007633B2 (en) Image processing program, computer-readable recording medium storing the program, image processing apparatus, and image processing method
US9582247B1 (en) Preserving data correlation in asynchronous collaborative authoring systems
WO2006003856A1 (en) Image drawing device, vertex selecting method, vertex selecting program, and integrated circuit
JP2002197485A (en) Achromic light writing in graphic system and method
JP2009246600A (en) Production control program of sound generated from sound source in virtual space
JP2006113909A (en) Image processor, image processing method and image processing program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120306