(クラス)
3D レンダリング操作を実行するためのメソッドおよびプロパティをカプセル化します。
説明
このクラスはレンダリングを実行するために、
Primitive クラスおよび
render-primitive マクロで使用されます。
Primitive のメソッドは、頂点および各頂点のプロパティ (法線、色、鏡面およびテクスチャ) を指定します。
一般的に、オブジェクトを描画するためには、
render-primitive マクロを呼び出し、引数として以下を与えます。
- レンダリングを実行する Renderer3d オブジェクト、
- レンダリングするものを指定するための PrimitiveType 値、および
- プリミティブの各頂点。
- 各頂点のプロパティを指定するためのさまざまな Primitive.* メソッド呼び出し。
- 頂点自身を指定するための Primitive.vertex* アクション メソッド。
アクセサ public final Renderer3d.alpha-function:
Compare セッター public final Renderer3d.alpha-function:
Compare
セッター public final Renderer3d.alpha-reference:
Fraction
アクセサ public final Renderer3d.alpha-test-enabled?:
bool セッター public final Renderer3d.alpha-test-enabled?:
bool
アクセサ public final Renderer3d.ambient-light-color:
Color セッター public final Renderer3d.ambient-light-color:
Color
アクセサ public final Renderer3d.ambient-material-color:
Color セッター public final Renderer3d.ambient-material-color:
Color
アクセサ public final Renderer3d.blend-dst-function:
Blend セッター public final Renderer3d.blend-dst-function:
Blend
アクセサ public final Renderer3d.blend-enabled?:
bool セッター public final Renderer3d.blend-enabled?:
bool
アクセサ public final Renderer3d.blend-src-function:
Blend セッター public final Renderer3d.blend-src-function:
Blend
アクセサ public final Renderer3d.cull-face:
Cull セッター public final Renderer3d.cull-face:
Cull
アクセサ public final Renderer3d.cull-face-enabled?:
bool セッター public final Renderer3d.cull-face-enabled?:
bool
アクセサ public final Renderer3d.depth-function:
Compare セッター public final Renderer3d.depth-function:
Compare
アクセサ public final Renderer3d.depth-test-enabled?:
bool セッター public final Renderer3d.depth-test-enabled?:
bool
アクセサ public final Renderer3d.depth-write-enabled?:
bool セッター public final Renderer3d.depth-write-enabled?:
bool
アクセサ public final Renderer3d.diffuse-material-color:
Color セッター public final Renderer3d.diffuse-material-color:
Color
アクセサ public final Renderer3d.fog-color:
Color セッター public final Renderer3d.fog-color:
Color
アクセサ public final Renderer3d.fog-density:
float セッター public final Renderer3d.fog-density:
double
アクセサ public final Renderer3d.fog-enabled?:
bool セッター public final Renderer3d.fog-enabled?:
bool
セッター public final Renderer3d.fog-end:
Distance
アクセサ public final Renderer3d.fog-mode:
FogMode セッター public final Renderer3d.fog-mode:
FogMode
セッター public final Renderer3d.fog-start:
Distance
アクセサ public final Renderer3d.font:
Font セッター public final Renderer3d.font:
Font
アクセサ public final Renderer3d.front-face:
Winding セッター public final Renderer3d.front-face:
Winding
アクセサ public final Renderer3d.lighting-enabled?:
bool セッター public final Renderer3d.lighting-enabled?:
bool
アクセサ public final Renderer3d.line-stipple:
uint16 セッター public final Renderer3d.line-stipple:
uint16
アクセサ public abstract Renderer3d.line-stipple-supported?:
bool
セッター public final Renderer3d.line-width:
Distance
アクセサ public final Renderer3d.max-lights:
int
セッター public final Renderer3d.point-size:
Distance
アクセサ public abstract Renderer3d.resolution:
Resolution
shade-model: | Renderer3d がフラット シェーディングを行うか、スムース シェーディングを行うかを指定します。 |
アクセサ public final Renderer3d.shade-model:
Shading セッター public final Renderer3d.shade-model:
Shading
アクセサ public final Renderer3d.specular-material-color:
Color セッター public final Renderer3d.specular-material-color:
Color
アクセサ public final Renderer3d.specular-material-shininess:
float セッター public final Renderer3d.specular-material-shininess:
double
アクセサ public final Renderer3d.texture:
Texture セッター public final Renderer3d.texture:
Texture
アクセサ public abstract Renderer3d.wide-lines-supported?:
bool
public | {Renderer3d.create-offscreen}:(Renderer3d, Drawable) |
clear: | 現在のビューポートで指定された表示領域全体、および指定された色と深度にクリッピングしている四角形をクリアします。 |
public abstract | {Renderer3d.clear}:void |
public sealed | {Renderer3d.get-font-names}:{Array-of String} |
public sealed | {Renderer3d.get-font-underline-position}:FloatDistance |
public sealed | {Renderer3d.get-font-underline-thickness}:FloatDistance |
public final | {Renderer3d.get-light-diffuse-color light-index:int}:Color |
public final | {Renderer3d.get-light-enable light-index:int}:bool |
public final | {Renderer3d.get-light-specular-color}:Color |
public final | {Renderer3d.get-light-spot-angle}:FloatAngle |
public final | {Renderer3d.get-light-spot-exponent light-index:int}:float |
public final | {Renderer3d.get-light-style light-index:int}:LightStyle |
public sealed | {Renderer3d.get-string-advance-width}:FloatDistance |
public | {Renderer3d.render-drawable}:void |
public | {Renderer3d.render-ellipse}:void |
public | {Renderer3d.render-elliptic-path x:Distance,y:Distance,z:Distance,width:Distance,height:Distance,texture:Texture = self.texture,line-width:Distance = self.line-width asa Distance,line-stipple:uint16 = self.line-stipple,start:Angle = 0degrees,stop:Angle = 360degrees,wedge?:bool = false }:void |
public sealed | {Renderer3d.render-glyph-2d}:void |
public sealed | {Renderer3d.render-glyph-2d-from-array}:void |
public | {Renderer3d.render-line}:void |
public abstract | {Renderer3d.render-pixmap dst-x:Distance,dst-y:Distance,dst-z:Distance = 0m,dst-width:Distance,dst-height:Distance,scale-size?:bool = true,src:Pixmap,src-x:int = 0,src-y:int = 0,src-width:int = src.width,src-height:int = src.height }:void |
public | {Renderer3d.render-rectangle}:void |
public sealed | {Renderer3d.render-string-2d}:Distance |
public | {Renderer3d.render-triangle-fan texture:Texture = self.texture,line-width:Distance = self.line-width asa Distance,... }:void |
public | {Renderer3d.render-vertices}:void |
public abstract | {Renderer3d.set-clipping-rectangle}:void |
public final | {Renderer3d.set-light-diffuse-color}:void |
public final | {Renderer3d.set-light-direction}:void |
public final | {Renderer3d.set-light-enable}:void |
public final | {Renderer3d.set-light-position}:void |
public final | {Renderer3d.set-light-specular-color}:void |
public final | {Renderer3d.set-light-spot-angle}:void |
public final | {Renderer3d.set-light-spot-exponent}:void |
public final | {Renderer3d.set-light-style}:void |
public abstract | {Renderer3d.set-viewport}:void |
(ファクトリ)
(アクセサ)
アクセサ public final Renderer3d.alpha-function:
Compare セッター public final Renderer3d.alpha-function:
Compare アルファ テスト用にアルファ比較関数を指定します。
説明
(アクセサ)
セッター public final Renderer3d.alpha-reference:
Fraction アルファ テストで入力アルファ値と比較される参照値を指定します。
説明
(アクセサ)
アクセサ public final Renderer3d.alpha-test-enabled?:
bool セッター public final Renderer3d.alpha-test-enabled?:
bool アルファ テストが行われるかどうかを指定します。
説明
(アクセサ)
アクセサ public final Renderer3d.ambient-light-color:
Color セッター public final Renderer3d.ambient-light-color:
Color 方向性のないシーンの背景ライト。
説明
オブジェクトの影になる側を照らすのに使用します。
(アクセサ)
アクセサ public final Renderer3d.ambient-material-color:
Color セッター public final Renderer3d.ambient-material-color:
Color
(アクセサ)
アクセサ public final Renderer3d.blend-dst-function:
Blend セッター public final Renderer3d.blend-dst-function:
Blend 出力先混合ファクターの算出方法を指定します。Blend を参照してください。
説明
(アクセサ)
アクセサ public final Renderer3d.blend-enabled?:
bool セッター public final Renderer3d.blend-enabled?:
bool ピクセル混合が行われるかどうかを指定します。
説明
(アクセサ)
アクセサ public final Renderer3d.blend-src-function:
Blend セッター public final Renderer3d.blend-src-function:
Blend ソース混合ファクターの算出方法を指定します。Blend を参照してください。
説明
(アクセサ)
アクセサ public final Renderer3d.cull-face:
Cull セッター public final Renderer3d.cull-face:
Cull レンダリングしない側。
説明
このプロパティは、
Renderer3d.cull-face-enabled? が
true の場合のみ適用されます。有効な値は次のとおりです。
- Cull.back:オブジェクトの背面がレンダリングされないことを指定します。これが既定値になります。
- Cull.front:オブジェクトの前面がレンダリングされないことを指定します。
オブジェクトの前面および背面は、その頂点の指定順序によって決められます。詳細については、「
3D レンダリング」の章を参照してください。
(アクセサ)
アクセサ public final Renderer3d.cull-face-enabled?:
bool セッター public final Renderer3d.cull-face-enabled?:
bool オブジェクトの片側のレンダリングを行わないようにするかどうかを指定します。
説明
既定値は
false で、両側がレンダリングされます。このプロパティを
true に設定した場合、
Renderer3d は
Renderer3d.cull-face プロパティに従って、どちら側をカリングするか (つまり、どちら側を描画
しないか) を決定します。
(アクセサ)
アクセサ public final Renderer3d.depth-function:
Compare セッター public final Renderer3d.depth-function:
Compare 深度テスト用に深度比較関数を指定します。
説明
深度バッファリングの技術を使用すると、ビューアに近いオブジェクトがビューアから遠いオブジェクトのレンダリングによって覆い隠されないようにすることができます。'depth buffer' は、その位置で最後にレンダリングされたオブジェクトの深度を示す各ピクセルの値を含みます。レンダラーは、このバッファを使用して新しいオブジェクトをレンダリングし、新しいオブジェクトのどのピクセルが実際に表示可能になるのかを決定できます。
depth-function は、各入力ピクセルの z 値と深度バッファ内にある z 値を比較するのに使用される関数を指定します。深度バッファリングが有効な場合のみ、比較が行われます。
Renderer3d.depth-test-enabled? を参照してください。
(アクセサ)
アクセサ public final Renderer3d.depth-test-enabled?:
bool セッター public final Renderer3d.depth-test-enabled?:
bool 深度バッファリング (z バッファリング) を有効にするかどうかを指定します。
説明
既定値は false で、最後にレンダリングされたオブジェクトは、そのピクセルのいずれかが他のレンダリングされたオブジェクトのピクセルより "遠い" かどうかに関係なく、"前面" にレンダリングされます。
深度バッファリングを有効にしても、レンダリングするオブジェクトが透明な場合は、前面にある透明なオブジェクトがその後ろにある不透明なオブジェクトを見せることを許可しているかどうか確認する必要があります。したがって、最初に不透明なオブジェクトをすべてレンダリングし、その後透明なオブジェクトを一番遠いオブジェクトから一番近いオブジェクトにレンダリングする必要があります。
(アクセサ)
アクセサ public final Renderer3d.depth-write-enabled?:
bool セッター public final Renderer3d.depth-write-enabled?:
bool 深度バッファへの書き込みが実行されるかどうかを指定します。Renderer3d.depth-test-enabled? を参照してください。
説明
無効の場合、以降のレンダリングは深度バッファの内容を変更しません。ただし、その内容に対してテストは行われます。これは、レンダリングしているオブジェクトがシーン内の何か他のものを覆い隠さないようにする場合に役立ちます。
(アクセサ)
アクセサ public final Renderer3d.diffuse-material-color:
Color セッター public final Renderer3d.diffuse-material-color:
Color 照明オブジェクトで使用される拡散コンポーネント。現在の色も設定します。
(アクセサ)
アクセサ public final Renderer3d.fog-color:
Color セッター public final Renderer3d.fog-color:
Color フォグの色パラメータ。
説明
フォグの色は、フォグされるピクセル色を作成するために入力ピクセルと混合される色です。フォグ混合計算式の定義については
FogMode を参照してください。
参照:
(アクセサ)
アクセサ public final Renderer3d.fog-density:
float セッター public final Renderer3d.fog-density:
double フォグ濃度パラメータ。
説明
フォグ濃度は
FogMode.exponential フォグ計算式および
FogMode.sqr-exponential フォグ計算式で使用されます。負の数でない濃度のみが受け入れられます。既定のフォグ濃度は 1.0 です。フォグ混合計算式の定義については
FogMode を参照してください。
参照:
(アクセサ)
アクセサ public final Renderer3d.fog-enabled?:
bool セッター public final Renderer3d.fog-enabled?:
bool レンダリングされる色に対するフォグのアプリケーションを有効、または無効にするブール値フラグ。
説明
true はフォグのアプリケーションを有効にし、
false はフォグのアプリケーションを無効にします。フォグ混合計算式の定義については
FogMode を参照してください。
参照:
(アクセサ)
セッター public final Renderer3d.fog-end:
Distance フォグ終点パラメータ。
説明
フォグの終点を指定します。
FogMode.linear フォグ計算式で使用される遠い方の距離です。距離は、視点座標システムの視点 (0, 0, 0, 1) からの距離になります。既定のフォグ遠距離は 1m です。フォグ混合計算式の定義については
FogMode を参照してください。
参照:
(アクセサ)
アクセサ public final Renderer3d.fog-mode:
FogMode セッター public final Renderer3d.fog-mode:
FogMode FogMode 列挙を使用して、フォグ混合ファクター f を算出するのに使用される計算式を指定します。
説明
フォグ混合計算式の定義については
FogMode を参照してください。既定の fog-mode は
FogMode.exponential です。
参照:
(アクセサ)
セッター public final Renderer3d.fog-start:
Distance フォグ始点パラメータ。
説明
フォグの始点を指定します。
FogMode.linear フォグ計算式で使用される近い方の距離です。距離は、視点座標システムの視点 (0, 0, 0, 1) からの距離になります。既定のフォグ近距離は 0m です。フォグ混合計算式の定義については
FogMode を参照してください。
参照:
(アクセサ)
アクセサ public final Renderer3d.font:
Font セッター public final Renderer3d.font:
Font
(アクセサ)
アクセサ public final Renderer3d.front-face:
Winding セッター public final Renderer3d.front-face:
Winding
(アクセサ)
アクセサ public final Renderer3d.lighting-enabled?:
bool セッター public final Renderer3d.lighting-enabled?:
bool この Renderer3d でレンダリングされたシーンで照明が有効かどうかを示します。
説明
(アクセサ)
アクセサ public final Renderer3d.line-stipple:
uint16 セッター public final Renderer3d.line-stipple:
uint16 行に適用される点描パターンを指定します。
説明
line-stipple のそれぞれのビットは、点描パターン内のピクセルを表します。設定されたそれぞれのビットに対して、ピクセルがレンダリングされ、存在しないそれぞれのビットに対しては、ピクセルはスキップされます。レンダリングは最下位ビットで開始します。0b0000111100001111 は、典型的な破線パターンを表します。
注意事項
(アクセサ)
アクセサ public abstract Renderer3d.line-stipple-supported?:
bool このレンダラーが、 Renderer3d.line-stipple 設定を使用して指定した方法で、行の点描を実際に実装するかどうかを示します。この値が false の場合、line-stipple 値に関係なく、すべての行は実線となります。
(アクセサ)
セッター public final Renderer3d.line-width:
Distance
(アクセサ)
アクセサ public final Renderer3d.max-lights:
int このレンダラーがサポートするライト数の最大値を取得します。
(アクセサ)
Renderer3d で使用されるモデル ビュー マトリックス スタックを返します。
説明
Matrix3dStack が与えられている場合、そのメソッドのいずれかを呼び出し、カメラの動きをシミュレーションしたり、オブジェクト変換を行います。
(アクセサ)
セッター public final Renderer3d.point-size:
Distance
(アクセサ)
Renderer3d で使用される投影マトリックス スタックを返します。
説明
(アクセサ)
アクセサ public abstract Renderer3d.resolution:
Resolution 解像度。ピクセル / このRenderer3d に関連付けられている Drawable の Distance 単位。
説明
Renderer3d はresolution を使用して、距離の単位をピクセルに変換します。
(アクセサ)
アクセサ public final Renderer3d.shade-model:
Shading セッター public final Renderer3d.shade-model:
Shading Renderer3d がフラット シェーディングを行うか、スムース シェーディングを行うかを指定します。
説明
Renderer3d がラインやポリゴンの形状を描画する時、shade-model は、一定色が使用されるか、形状の頂点の色が形状全体にわたって補間されるかを決定します。
(アクセサ)
アクセサ public final Renderer3d.specular-material-color:
Color セッター public final Renderer3d.specular-material-color:
Color
(アクセサ)
アクセサ public final Renderer3d.specular-material-shininess:
float セッター public final Renderer3d.specular-material-shininess:
double 鏡面ハイライトのサイズを制御します。
説明
val: 適切な値が [1.0, 40.0] の範囲に収まります。指定される値が小さいほど、鏡面ハイライト領域は大きくなります。
(アクセサ)
Renderer3d で使用されるテキスト マトリックス スタックを返します。
説明
(アクセサ)
テキストの Renderer3d で使用される投影マトリックス スタックを返します。
説明
(アクセサ)
アクセサ public final Renderer3d.texture:
Texture セッター public final Renderer3d.texture:
Texture
(アクセサ)
Renderer3d で使用されるテクスチャ マトリックス スタックを返します。
説明
(アクセサ)
(アクセサ)
アクセサ public abstract Renderer3d.wide-lines-supported?:
bool このレンダラーが単一のピクセルの太さ以上の行をレンダリングできるかどうかを示します。この値が false の場合、Renderer3d.line-width は無視され、すべての行は単一のピクセルの幅になります。
(クラスプロシージャ)
public | {Renderer3d.create-offscreen}:(Renderer3d, Drawable) |
(メソッド)
public abstract | {Renderer3d.clear}:void |
現在のビューポートで指定された表示領域全体、および指定された色と深度にクリッピングしている四角形をクリアします。
color: 表示領域に設定される色。この値が
null の場合、表示領域の色は変更されません。
既定の色は黒です。
depth: 表示領域に設定される深度の値。既定値は
nan です。この値を既定から変更しない場合、表示領域の深度は変更されません。
陰面消去を行うために深度バッファリング (Z バッファリングと呼ばれることもあります)
を使用するアプリケーションのみが、この設定を変更する必要があります。
0 の値は一番近い深度に相当し、
1 の値は一番遠い深度に相当します。ただし、非標準投影マトリックスを使用していない場合に限ります。したがって、深度バッファリングを使用するほとんどのアプリケーションは、この引数を
1 に設定します。
(メソッド)
現在のフォントの上昇量を示す FloatDistance を返します。
説明
現在のフォントの設定方法については
font アクセッサを参照してください。また、それを一時的に設定する方法については
with マクロを参照してください。
次の図では、文字列 "Jj" の ascent (上昇) を示しています。
(メソッド)
現在のフォントの下降量を示す FloatDistance を返します。
説明
現在のフォントの設定方法については
font アクセッサを参照してください。また、それを一時的に設定する方法については
with マクロを参照してください。
次の図では、文字列 "Jj" の descent (下降) を示しています。
(メソッド)
現在のフォントのテキストの行間長を示す FloatDistance を返します。
説明
現在のフォントの設定方法については
font アクセッサを参照してください。また、それを一時的に設定する方法については
with マクロを参照してください。
次の図では、文字列 "Jj" の line-gap (行間長) を示しています。
(メソッド)
public sealed | {Renderer3d.get-font-names}:{Array-of String} |
この Renderer3d に使用可能なフォント名をすべて取得します。
(メソッド)
public sealed | {Renderer3d.get-font-underline-position}:FloatDistance |
ベースラインを基準として、現在のフォントで下線がレンダリングされる位置を示す FloatDistance を返します。
説明
現在のフォントの設定方法については
font アクセッサを参照してください。また、それを一時的に設定する方法については
with マクロを参照してください。
次の図では、文字列 "Jj" の underline-position を示しています。
(メソッド)
public sealed | {Renderer3d.get-font-underline-thickness}:FloatDistance |
現在のフォントの下線の太さを示す FloatDistance を返します。
説明
現在のフォントの設定方法については
font アクセッサを参照してください。また、それを一時的に設定する方法については
with マクロを参照してください。
(メソッド)
public final | {Renderer3d.get-light-diffuse-color light-index:int}:Color |
(メソッド)
指定されたライトの視点空間での方向を取得します。
説明
このメソッドは方向ライトおよびスポット ライトでのみ有効です。
(メソッド)
public final | {Renderer3d.get-light-enable light-index:int}:bool |
指定されたライトが有効かどうか (または オフ) を示します。
(メソッド)
指定されたライトの視点空間での位置を取得します (ポイント ライトおよびスポット ライトでのみ有効です)。
(メソッド)
public final | {Renderer3d.get-light-specular-color}:Color |
(メソッド)
public final | {Renderer3d.get-light-spot-angle}:FloatAngle |
指定されたライトのスポットの角度を取得します (スポット ライトでのみ有効)。
(メソッド)
public final | {Renderer3d.get-light-spot-exponent light-index:int}:float |
指定されたライトのスポットの指数を取得します (スポット ライトでのみ有効)。
注意事項
スポットの指数は、光線の中心からスポット ライトの強度が減少していく量を指定します。スポットの指数は 0 から 128 までの値に設定されます。値が大きいほど、より多く減少していくことになります。
(メソッド)
public final | {Renderer3d.get-light-style light-index:int}:LightStyle |
(メソッド)
public sealed | {Renderer3d.get-string-advance-width}:FloatDistance |
(メソッド)
この Renderer3d のビューポートを取得します。
説明
ビューポートは、すべてのレンダリングが行われるレンダリング面にウィンドウを定義します。投影マトリックス (
Matrix3dProjectionStack で解説済み) の端 (左、右、上および下) は、ビューポートの端にマップされます。
x, y: レンダリング面のビューポートの左上隅。
width, height: レンダリング面のビューポートの幅と高さ。
(メソッド)
public | {Renderer3d.render-drawable}:void |
Drawable の内容を出力先四角形にレンダリングします。ソース四角形がオプションで指定できます。
dst-width: ターゲット
Drawable の出力先四角形の幅。これはゼロより大きい値である必要があります。
dst-height: ターゲット
Drawable の出力先四角形の高さ。これはゼロより大きい値である必要があります。
src-x: ソース四角形の左端。既定値は 0m です。
src-x はゼロ以上で、必ずソース
Drawable の幅より小さい必要があります。
src-y: ソース四角形の上端。既定値は 0m です。
src-y はゼロ以上で、必ずソース
Drawable の高さより小さい必要があります。
src-width: 既定値はソース
Drawable の幅全体です。
src-width はゼロ以上で、ソース
Drawable の幅以下である必要があります。
src-height: 既定値はソース
Drawable の高さ全体です。
src-height はゼロ以上で、ソース
Drawable の高さ以下である必要があります。
注意事項
render-drawable メソッドには規約がいくつかあります。
src-x +
src-width はソース
Drawable の幅以下である必要があり、
src-width はソース
Drawable の幅以下である必要があります。
同様に、
src-y +
src-height はソース
Drawable の高さ以下である必要があり、
src-height はソース
Drawable の高さ以下である必要があります。
src-width、
src-height、
dst-width および
dst-height はすべてゼロより大きい必要があります。
dst-x、
dst-y は 0 より小さくできますが、その場合ソース
Drawable はクリップされます。また、これらはターゲットの幅や高さより大きくできますが、その場合は何も描画されません。
ソース
Drawable は
Renderer3d の変換マトリックスでは変換されません。このメソッドは単に
Drawable を別の
Drawable の上にコピーするだけです。
(メソッド)
public | {Renderer3d.render-ellipse}:void |
塗りつぶされた楕円形をレンダリングします。
説明
楕円形の全体または一部をレンダリングします。楕円形全体と同じように楕円形の境界ボックスを指定します。
x, y, z: 境界ボックスの左上隅。
width, height: 境界ボックスの幅と高さ。
start: 開始する扇形の切片 (楕円形全体を描画するのではなく) の角度。0deg は 3 時の位置になります。
stop: 停止する扇形の切片の角度。切片は start から時計回りに移動して描画されます。
wedge?: wedge? が true (既定) の場合、楕円形は、楕円形の周辺と楕円形の中心を結んだ一連の三角形で塗りつぶされます。wedge? が false の場合、filled-in 領域は楕円の周辺に沿った点によってのみ境界をつけられます。このパラメータは start 引数および stop 引数が楕円形全体を定義していない場合のみ有効です。
(メソッド)
public | {Renderer3d.render-elliptic-path x:Distance,y:Distance,z:Distance,width:Distance,height:Distance,texture:Texture = self.texture,line-width:Distance = self.line-width asa Distance,line-stipple:uint16 = self.line-stipple,start:Angle = 0degrees,stop:Angle = 360degrees,wedge?:bool = false }:void |
楕円形のパスをレンダリングします。
説明
楕円形の全体または一部のアウトラインをレンダリングします。楕円形全体と同じように楕円形の境界ボックスを指定します。
x, y, z: 境界ボックスの左上隅。
width, height: 境界ボックスの幅と高さ。
line-width: 楕円形をレンダリングする、オプションのライン幅。指定された場合、このパラメータは
Renderer3d.line-width の現在の値をオーバーライドします。
line-width が
0m の場合、これは細いラインを示します。
start: 開始する扇形の切片 (楕円形全体を描画するのではなく) の角度。0deg は 3 時の位置になります。
stop: 停止する扇形の切片の角度。切片は start から時計回りに移動して描画されます。
wedge?: 切片の周辺全体をレンダリングするかどうかを指定します。これが
true (および
start 引数と
stop 引数が楕円形全体を定義していない) 場合、このメソッドは放射型も描画します。
- 楕円の中心からパスの始点まで、および
- 楕円の中心からパスの終点まで。
(メソッド)
public sealed | {Renderer3d.render-glyph-2d}:void |
Renderer3d の Drawable に文字をレンダリングします。
説明
x: ベースライン位置の x 座標。
y: ベースライン位置の y 座標。
code: レンダリングする文字またはグリフのインデックスの配列。
code-is-glyph-index? が true で、
code が
uint16 と互換性のある値の場合、それはグリフのインデックスとして使用されます。
code-is-glyph-index? が false(デフォルト)で、
code が
char 型と互換性がある値の場合、
code は、
char にキャストされ、対応するグリフのインデックスがフォントから取得されます。
code が適した型と互換性がない場合、未知のグリフ(一般的には、四角またはドット)がレンダリングされます。
code-is-glyph-index?: code が文字として扱われるか、グリフのインデックスとして扱われるのかを示します。
(メソッド)
public sealed | {Renderer3d.render-glyph-2d-from-array}:void |
Renderer3d の Drawable に文字の配列をレンダリングします。
説明
codes: レンダリングする文字またはグリフのインデックスの配列。
code-is-glyph-index? が true の場合、
uint16 と互換性がある値は、グリフのインデックスとして使用されます。
code-is-glyph-index? が false の場合(デフォルト)、
char と互換性がある値は、
char にキャストされ、対応するグリフのインデックスが、フォントから取得されます。値が適した型と互換性がない場合、未知のグリフ(一般的には、四角またはドット)がレンダリングされます。
locations: 各文字をレンダリングする位置の配列。
codes-are-glyph-indices?: codes 内の値が、文字として扱われるかグリフのインデックスとして扱われるのかを示します。
(メソッド)
public | {Renderer3d.render-line}:void |
始点および終点を与えられたライン セグメントをレンダリングします。
texture: ラインを描画するのに使用される
Texture オブジェクト。既定値は
self.texture です。
line-width: 描画されるライン セグメントの幅。既定値は self.line-width です。
注意事項
(メソッド)
public abstract | {Renderer3d.render-pixmap dst-x:Distance,dst-y:Distance,dst-z:Distance = 0m,dst-width:Distance,dst-height:Distance,scale-size?:bool = true,src:Pixmap,src-x:int = 0,src-y:int = 0,src-width:int = src.width,src-height:int = src.height }:void |
これはスクリーン上にピクスマップをレンダリングする効率的な方法です。既存の Renderer3d.modelview-matrix はピクスマップに適用されます。しかしピクスマップは常に水平方向および垂直方向に揃えて表示されます。回転はピクスマップの位置に影響を与えますが、ピクスマップの方向には影響を与えません。
説明
dst-xy 点は、世界空間の左上座標を与える
Renderer3d.modelview-matrix によって変換されます。dst-width および dst-height は、オプションで
modelview-matrix のスケール変更および世界空間の右下座標を与えるために変換された左上座標からのオフセットによって変換されます。その後、世界空間の左上と右下は、投影され、ピクセル グリッドに揃えられ、ピクスマップをレンダリングするために使用されます。
(メソッド)
public | {Renderer3d.render-rectangle}:void |
左上隅、幅および高さで指定された四角形をレンダリングします。
x: 四角形の左上隅の x 座標。
y: 四角形の左上隅の y 座標。
z: 四角形の左上隅の z 座標。
width: 四角形の幅。
height: 四角形の高さ。
texture: この四角形に色をつけるのに使用されるテクスチャ。既定値は self.texture です。
注意事項
四角形の 4 つの頂点はすべて、
z で指定された z 値で描画されます。点 (x, y, z)、(x + width, y, z)、(x + width, y + height, z) および (x, y + height, z) はすべて
Renderer3d のモデルビュー マトリックスで変換されます。
Renderer3d.modelview-matrix を参照してください。
(メソッド)
public sealed | {Renderer3d.render-string-2d}:Distance |
Renderer3d の Drawable に String をレンダリングします。
説明
x: 開始ベースライン位置の x 座標。
y: 開始ベースライン位置の y 座標。
ndc-z: 正規化されたデバイス座標の z 座標。値は -1 から 1 までの範囲にある必要があります (-1 はクリッピング近面にあり、1 はクリッピング遠面にあります)。既定値は 0 です。このパラメータは depth-test-enabled? が true の場合のみ有効です。
string: レンダリングする文字列。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。
depth-test-enabled?: 文字列がレンダリングされる時に深度テストが実行されるかどうかを指定するブール値。使用される z 値は ndc-z パラメータで指定されます。既定値は false です。
戻り値
(メソッド)
public | {Renderer3d.render-triangle-fan texture:Texture = self.texture,line-width:Distance = self.line-width asa Distance,... }:void |
ポリゴンをレンダリングします。
説明
指定する
Texture を使用してポリゴンをレンダリングします。このメソッドでは、頂点を次の型の 1 つとして指定できます。指定された頂点はすべて同じ型である必要があります。
texture: 使用する
Texture。これは均一な色にできます。これが省略された場合は、
Renderer3d.texture が使用されます。テクスチャ座標はこのメソッドでは提供されないこと、また、均一でない
Texture も均一に表示されることに注意してください。
line-width: ポリゴンのパスの幅。
(メソッド)
public | {Renderer3d.render-vertices}:void |
配列に定義されたプリミティブのセットを効率的にレンダリングします。
type: レンダリングするプリミティブの型。プリミティブのさまざまな型については
PrimitiveType を参照してください。
normal-array: 各頂点の法線を提供するオプションの {FastArray-of FloatDirection3d}。指定された場合、この配列は少なくとも vertex-array 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は {FloatDirection3d 0, 0, 1} と見なされます。
color-array: 各頂点の拡散色を提供するオプションの
{FastArray-of Pixel}。指定された場合、この配列は少なくとも
vertices 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は
と見なされます。
specular-array: 各頂点の鏡面色を提供するオプションの
{FastArray-of Pixel}。指定された場合、この配列は少なくとも
vertices 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は
{Pixel.create 0, 0,
0, alpha = 0}
と見なされます。
texture-coord-array: 各頂点のテクスチャ座標を提供するオプションの
{FastArray-of Fraction2d}。指定された場合、この配列は少なくとも
vertices 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は
と見なされます。
説明
これはプリミティブの配列をレンダリングする効率的な方法です。
呼び出し:
{renderer.render-vertices
type,
vertex-array,
normal-array = normal-array,
color-array = color-array,
specular-array = specular-array,
texture-coord-array = texture-coord-array
}
は機能的には以下と同じです。
{render-primitive p, type = type on renderer do
{for v key index in vertex-array do
{p.normal3v normal-array[index]}
{p.color4
color-array[index].red,
color-array[index].green,
color-array[index].blue,
color-array[index].alpha
}
{p.specular4
specular-array[index].red,
specular-array[index].green,
specular-array[index].blue,
specular-array[index].alpha
}
{p.texture-coord2v texture-coord-array[index]}
{p.vertex3v v}
}
}
しかし、
Renderer3d.render-vertices を呼び出すことは、
render-primitive を呼び出すことより非常に効率的です。
(メソッド)
public abstract | {Renderer3d.set-clipping-rectangle}:void |
この Renderer3d のクリッピング四角形を設定します。
説明
クリッピング四角形は、ピクセルが外側に描画されていないレンダリングの四角形を定義します。
viewport (
Renderer3d.set-viewport を使用して設定されます) と異なり、クリッピング四角形は投影マトリックスとは関係ありません。
x, y: レンダリング面のクリッピング四角形の左上隅。
width, height: レンダリング面のクリッピング四角形の幅と高さ。これらの値は負であってはなりません。
(メソッド)
public final | {Renderer3d.set-light-diffuse-color}:void |
(メソッド)
public final | {Renderer3d.set-light-direction}:void |
指定されたライトの方向を設定します (ポイント ライトおよびスポット ライトでのみ有効)。
light-index: 方向を設定するライトのインデックス。
direction: ライトの方向。
eye-space?:
direction の解釈方法を制御します。
- eye-space? が true の場合、direction はカメラの位置を基準として解釈されます。direction はモデル ビュー マトリックスには影響を受けません。
- eye-space? が false の場合は、direction はモデル ビュー マトリックスによって影響を受けます。
注意事項
eye-space?=true を使用して、視点空間 (カメラ空間) のライトの位置を設定します。これはヘッドライトを有効にします。
(メソッド)
public final | {Renderer3d.set-light-enable}:void |
指定されたライトを有効または無効にします。
light-index: 有効または無効にするライトのインデックス値。
enable?: 有効にするためには、enable? を true に設定します。無効にするためには false を設定します。
(メソッド)
public final | {Renderer3d.set-light-position}:void |
指定されたライトの位置を設定します (ポイント ライトおよびスポット ライトでのみ有効)。
light-index: 位置を設定するライトのインデックス
position: ライトの位置。
eye-space?:
direction の解釈方法を制御します。
- eye-space? が true の場合、position はカメラの位置を基準として解釈されます。position はモデル ビュー マトリックスには影響を受けません。
- eye-space? が false の場合は、position はモデル ビュー マトリックスによって影響を受けます。
注意事項
eye-space?=true を使用して、視点空間 (カメラ空間) のライトの位置を設定します。これはヘッドライトを有効にします。
(メソッド)
public final | {Renderer3d.set-light-specular-color}:void |
(メソッド)
public final | {Renderer3d.set-light-spot-angle}:void |
指定されたライトのスポットの角度を設定します (スポット ライトでのみ有効)。
(メソッド)
public final | {Renderer3d.set-light-spot-exponent}:void |
指定されたライトのスポットの指数を設定します (スポット ライトでのみ有効)。
注意事項
スポットの指数は、光線の中心からスポット ライトの強度が減少していく量を指定します。スポットの指数は 0 から 128 までの値に設定されます。値が大きいほど、より多く減少していくことになります。
(メソッド)
public final | {Renderer3d.set-light-style}:void |
(メソッド)
public abstract | {Renderer3d.set-viewport}:void |
この Renderer3d のビューポートを設定します。
説明
ビューポートは、すべてのレンダリングが行われるレンダリング面にウィンドウを定義します。投影マトリックス (
Matrix3dProjectionStack で解説済み) の端 (左、右、上および下) は、ビューポートの端にマップされます。
x, y: レンダリング面のビューポートの左上隅。
width, height: レンダリング面のビューポートの幅と高さ。