Renderer3d (クラス)
public abstract Renderer3d {inherits RendererBase}
パッケージ: CURL.GRAPHICS.RENDERER3D

3D レンダリング操作を実行するためのメソッドおよびプロパティをカプセル化します。

説明

このクラスはレンダリングを実行するために、Primitive クラスおよび render-primitive マクロで使用されます。Primitive のメソッドは、頂点および各頂点のプロパティ (法線、色、鏡面およびテクスチャ) を指定します。

一般的に、オブジェクトを描画するためには、render-primitive マクロを呼び出し、引数として以下を与えます。

コンストラクタ
default:与えられた Drawable で使用する Renderer3d を作成します。
ファクトリ public {Renderer3d.default drawable:Drawable}:Renderer3d

プロパティ
alpha-function:アルファ テスト用にアルファ比較関数を指定します。
アクセサ public final Renderer3d.alpha-function:Compare
セッター public final Renderer3d.alpha-function:Compare
alpha-reference:アルファ テストで入力アルファ値と比較される参照値を指定します。
アクセサ public final Renderer3d.alpha-reference:FloatFraction
セッター public final Renderer3d.alpha-reference:Fraction
alpha-test-enabled?:アルファ テストが行われるかどうかを指定します。
アクセサ public final Renderer3d.alpha-test-enabled?:bool
セッター public final Renderer3d.alpha-test-enabled?:bool
ambient-light-color:方向性のないシーンの背景ライト。
アクセサ public final Renderer3d.ambient-light-color:Color
セッター public final Renderer3d.ambient-light-color:Color
ambient-material-color:照明オブジェクトで使用される周囲コンポーネント。
アクセサ public final Renderer3d.ambient-material-color:Color
セッター public final Renderer3d.ambient-material-color:Color
blend-dst-function:出力先混合ファクターの算出方法を指定します。Blend を参照してください。
アクセサ public final Renderer3d.blend-dst-function:Blend
セッター public final Renderer3d.blend-dst-function:Blend
blend-enabled?:ピクセル混合が行われるかどうかを指定します。
アクセサ public final Renderer3d.blend-enabled?:bool
セッター public final Renderer3d.blend-enabled?:bool
blend-src-function:ソース混合ファクターの算出方法を指定します。Blend を参照してください。
アクセサ public final Renderer3d.blend-src-function:Blend
セッター public final Renderer3d.blend-src-function:Blend
cull-face:レンダリングしない側。
アクセサ public final Renderer3d.cull-face:Cull
セッター public final Renderer3d.cull-face:Cull
cull-face-enabled?:オブジェクトの片側のレンダリングを行わないようにするかどうかを指定します。
アクセサ public final Renderer3d.cull-face-enabled?:bool
セッター public final Renderer3d.cull-face-enabled?:bool
depth-function:深度テスト用に深度比較関数を指定します。
アクセサ public final Renderer3d.depth-function:Compare
セッター public final Renderer3d.depth-function:Compare
depth-test-enabled?:深度バッファリング (z バッファリング) を有効にするかどうかを指定します。
アクセサ public final Renderer3d.depth-test-enabled?:bool
セッター public final Renderer3d.depth-test-enabled?:bool
depth-write-enabled?:深度バッファへの書き込みが実行されるかどうかを指定します。Renderer3d.depth-test-enabled? を参照してください。
アクセサ public final Renderer3d.depth-write-enabled?:bool
セッター public final Renderer3d.depth-write-enabled?:bool
diffuse-material-color:照明オブジェクトで使用される拡散コンポーネント。現在の色も設定します。
アクセサ public final Renderer3d.diffuse-material-color:Color
セッター public final Renderer3d.diffuse-material-color:Color
fog-color:フォグの色パラメータ。
アクセサ public final Renderer3d.fog-color:Color
セッター public final Renderer3d.fog-color:Color
fog-density:フォグ濃度パラメータ。
アクセサ public final Renderer3d.fog-density:float
セッター public final Renderer3d.fog-density:double
fog-enabled?:レンダリングされる色に対するフォグのアプリケーションを有効、または無効にするブール値フラグ。
アクセサ public final Renderer3d.fog-enabled?:bool
セッター public final Renderer3d.fog-enabled?:bool
fog-end:フォグ終点パラメータ。
アクセサ public final Renderer3d.fog-end:FloatDistance
セッター public final Renderer3d.fog-end:Distance
fog-mode:FogMode 列挙を使用して、フォグ混合ファクター f を算出するのに使用される計算式を指定します。
アクセサ public final Renderer3d.fog-mode:FogMode
セッター public final Renderer3d.fog-mode:FogMode
fog-start:フォグ始点パラメータ。
アクセサ public final Renderer3d.fog-start:FloatDistance
セッター public final Renderer3d.fog-start:Distance
font:Renderer3d の現在の Font
アクセサ public final Renderer3d.font:Font
セッター public final Renderer3d.font:Font
front-face:ポリゴンが前面を向いているか背面に向いているかをカリングの論理が判別する方法を指定します。Renderer3d.cull-face を参照してください。
アクセサ public final Renderer3d.front-face:Winding
セッター public final Renderer3d.front-face:Winding
lighting-enabled?:この Renderer3d でレンダリングされたシーンで照明が有効かどうかを示します。
アクセサ public final Renderer3d.lighting-enabled?:bool
セッター public final Renderer3d.lighting-enabled?:bool
line-stipple:行に適用される点描パターンを指定します。
アクセサ public final Renderer3d.line-stipple:uint16
セッター public final Renderer3d.line-stipple:uint16
line-stipple-supported?:このレンダラーが、 Renderer3d.line-stipple 設定を使用して指定した方法で、行の点描を実際に実装するかどうかを示します。この値が false の場合、line-stipple 値に関係なく、すべての行は実線となります。
アクセサ public abstract Renderer3d.line-stipple-supported?:bool
line-width:レンダリングされるラインの幅を指定する Distance
アクセサ public final Renderer3d.line-width:FloatDistance
セッター public final Renderer3d.line-width:Distance
max-lights:このレンダラーがサポートするライト数の最大値を取得します。
アクセサ public final Renderer3d.max-lights:int
modelview-matrix:Renderer3d で使用されるモデル ビュー マトリックス スタックを返します。
アクセサ public abstract Renderer3d.modelview-matrix:Matrix3dStack
point-size:レンダリングされる点の直径を指定する Distance
アクセサ public final Renderer3d.point-size:FloatDistance
セッター public final Renderer3d.point-size:Distance
projection-matrix:Renderer3d で使用される投影マトリックス スタックを返します。
アクセサ public abstract Renderer3d.projection-matrix:Matrix3dProjectionStack
resolution:解像度。ピクセル / このRenderer3d に関連付けられている DrawableDistance 単位。
アクセサ public abstract Renderer3d.resolution:Resolution
shade-model:Renderer3d がフラット シェーディングを行うか、スムース シェーディングを行うかを指定します。
アクセサ public final Renderer3d.shade-model:Shading
セッター public final Renderer3d.shade-model:Shading
specular-material-color:照明オブジェクトで使用される鏡面コンポーネント。
アクセサ public final Renderer3d.specular-material-color:Color
セッター public final Renderer3d.specular-material-color:Color
specular-material-shininess:鏡面ハイライトのサイズを制御します。
アクセサ public final Renderer3d.specular-material-shininess:float
セッター public final Renderer3d.specular-material-shininess:double
text-matrix:Renderer3d で使用されるテキスト マトリックス スタックを返します。
アクセサ public sealed Renderer3d.text-matrix:Matrix2dStack
text-projection-matrix:テキストの Renderer3d で使用される投影マトリックス スタックを返します。
アクセサ public sealed Renderer3d.text-projection-matrix:Matrix2dProjectionStack
texture:Renderer3d の現在の Texture
アクセサ public final Renderer3d.texture:Texture
セッター public final Renderer3d.texture:Texture
texture-matrix:Renderer3d で使用されるテクスチャ マトリックス スタックを返します。
アクセサ public abstract Renderer3d.texture-matrix:UnitlessMatrix3dStack
texture-mode:Renderer3d の現在の TextureMode
アクセサ public final Renderer3d.texture-mode:TextureMode
セッター public final Renderer3d.texture-mode:TextureMode
wide-lines-supported?:このレンダラーが単一のピクセルの太さ以上の行をレンダリングできるかどうかを示します。この値が false の場合、Renderer3d.line-width は無視され、すべての行は単一のピクセルの幅になります。
アクセサ public abstract Renderer3d.wide-lines-supported?:bool

クラス プロシージャ
create-offscreen:オフスクリーン Drawable およびその上にレンダリングする Renderer3d を作成します。
public {Renderer3d.create-offscreen
width:Distance,
height:Distance,
resolution:Resolution = 0dpi,
use-host-rendering?:bool = false
}:(Renderer3d, Drawable)

メソッド
clear:現在のビューポートで指定された表示領域全体、および指定された色と深度にクリッピングしている四角形をクリアします。
public abstract {Renderer3d.clear
color:#Color = {Palette.get-black},
depth:Fraction = nan
}:void
get-font-ascent:現在のフォントの上昇量を示す FloatDistance を返します。
public sealed {Renderer3d.get-font-ascent}:FloatDistance
get-font-descent:現在のフォントの下降量を示す FloatDistance を返します。
public sealed {Renderer3d.get-font-descent}:FloatDistance
get-font-line-gap:現在のフォントのテキストの行間長を示す FloatDistance を返します。
public sealed {Renderer3d.get-font-line-gap}:FloatDistance
get-font-names:この Renderer3d に使用可能なフォント名をすべて取得します。
public sealed {Renderer3d.get-font-names}:{Array-of String}
get-font-underline-position:ベースラインを基準として、現在のフォントで下線がレンダリングされる位置を示す FloatDistance を返します。
public sealed {Renderer3d.get-font-underline-position}:FloatDistance
get-font-underline-thickness:現在のフォントの下線の太さを示す FloatDistance を返します。
public sealed {Renderer3d.get-font-underline-thickness}:FloatDistance
get-light-diffuse-color:指定されたライトの拡散色を取得します。
public final {Renderer3d.get-light-diffuse-color light-index:int}:Color
get-light-direction-eye-space:指定されたライトの視点空間での方向を取得します。
public final {Renderer3d.get-light-direction-eye-space
light-index:int
}:FloatDirection3d
get-light-enable:指定されたライトが有効かどうか (または オフ) を示します。
public final {Renderer3d.get-light-enable light-index:int}:bool
get-light-position-eye-space:指定されたライトの視点空間での位置を取得します (ポイント ライトおよびスポット ライトでのみ有効です)。
public final {Renderer3d.get-light-position-eye-space
light-index:int
}:FloatDistance3d
get-light-specular-color:指定されたライトの鏡面色を取得します。
public final {Renderer3d.get-light-specular-color
light-index:int
}:Color
get-light-spot-angle:指定されたライトのスポットの角度を取得します (スポット ライトでのみ有効)。
public final {Renderer3d.get-light-spot-angle
light-index:int
}:FloatAngle
get-light-spot-exponent:指定されたライトのスポットの指数を取得します (スポット ライトでのみ有効)。
public final {Renderer3d.get-light-spot-exponent light-index:int}:float
get-light-style:LightStyle を取得します。
public final {Renderer3d.get-light-style light-index:int}:LightStyle
get-string-advance-width:文字列の幅を返します。
public sealed {Renderer3d.get-string-advance-width
string:StringInterface,
start-index:int = 0,
length:int = string.size - start-index
}:FloatDistance
get-viewport:この Renderer3d のビューポートを取得します。
public abstract {Renderer3d.get-viewport
}:(x:FloatDistance, y:FloatDistance, width:FloatDistance, height:FloatDistance)
render-drawable:Drawable の内容を出力先四角形にレンダリングします。ソース四角形がオプションで指定できます。
public {Renderer3d.render-drawable
dst-x:Distance,
dst-y:Distance,
dst-width:Distance,
dst-height:Distance,
src:Drawable,
src-x:Distance = 0m,
src-y:Distance = 0m,
src-width:Distance = src.width asa Distance,
src-height:Distance = src.height asa Distance
}:void
render-ellipse:塗りつぶされた楕円形をレンダリングします。
public {Renderer3d.render-ellipse
x:Distance,
y:Distance,
z:Distance,
width:Distance,
height:Distance,
texture:Texture = self.texture,
start:Angle = 0degrees,
stop:Angle = 360degrees,
wedge?:bool = true
}:void
render-elliptic-path:楕円形のパスをレンダリングします。
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
render-glyph-2d:Renderer3dDrawable に文字をレンダリングします。
public sealed {Renderer3d.render-glyph-2d
x:Distance,
y:Distance,
code:int,
code-is-glyph-index?:bool = false,
texture:Texture = self.texture
}:void
render-glyph-2d-from-array:Renderer3dDrawable に文字の配列をレンダリングします。
public sealed {Renderer3d.render-glyph-2d-from-array
codes:{FastArray-of int},
locations:{FastArray-of Distance2d},
texture:Texture = self.texture,
codes-are-glyph-indices?:bool = false
}:void
render-line:始点および終点を与えられたライン セグメントをレンダリングします。
public {Renderer3d.render-line
start:Distance3d,
end:Distance3d,
texture:Texture = self.texture,
line-width:Distance = self.line-width asa Distance,
line-stipple:uint16 = self.line-stipple
}:void
render-pixmap:これはスクリーン上にピクスマップをレンダリングする効率的な方法です。既存の Renderer3d.modelview-matrix はピクスマップに適用されます。しかしピクスマップは常に水平方向および垂直方向に揃えて表示されます。回転はピクスマップの位置に影響を与えますが、ピクスマップの方向には影響を与えません。
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
render-rectangle:左上隅、幅および高さで指定された四角形をレンダリングします。
public {Renderer3d.render-rectangle
x:Distance,
y:Distance,
z:Distance,
width:Distance,
height:Distance,
texture:Texture = self.texture
}:void
render-string-2d:Renderer3dDrawableString をレンダリングします。
public sealed {Renderer3d.render-string-2d
x:Distance,
y:Distance,
ndc-z:float = 0,
string:StringInterface,
texture:Texture = self.texture,
start:int = 0,
length:int = string.size - start,
depth-test-enabled?:bool = false
}:Distance
render-triangle-fan:ポリゴンをレンダリングします。
public {Renderer3d.render-triangle-fan
texture:Texture = self.texture,
line-width:Distance = self.line-width asa Distance,
...
}:void
render-vertices:配列に定義されたプリミティブのセットを効率的にレンダリングします。
public {Renderer3d.render-vertices
type:PrimitiveType,
vertex-array:{FastArray-of {Vector3d-of FloatDistance}},
normal-array:#{FastArray-of {Vector3d-of float}} = null,
color-array:#{FastArray-of Pixel} = null,
specular-array:#{FastArray-of Pixel} = null,
texture-coord-array:#{FastArray-of {Vector2d-of float}} = null
}:void
set-clipping-rectangle:この Renderer3d のクリッピング四角形を設定します。
public abstract {Renderer3d.set-clipping-rectangle}:void
set-light-diffuse-color:指定されたライトの拡散色を設定します。
public final {Renderer3d.set-light-diffuse-color
light-index:int,
color:Color
}:void
set-light-direction:指定されたライトの方向を設定します (ポイント ライトおよびスポット ライトでのみ有効)。
public final {Renderer3d.set-light-direction
light-index:int,
direction:Direction3d,
eye-space?:bool = false
}:void
set-light-enable:指定されたライトを有効または無効にします。
public final {Renderer3d.set-light-enable
light-index:int,
enable?:bool
}:void
set-light-position:指定されたライトの位置を設定します (ポイント ライトおよびスポット ライトでのみ有効)。
public final {Renderer3d.set-light-position
light-index:int,
position:Distance3d,
eye-space?:bool = false
}:void
set-light-specular-color:指定されたライトの鏡面色を設定します。
public final {Renderer3d.set-light-specular-color
light-index:int,
color:Color
}:void
set-light-spot-angle:指定されたライトのスポットの角度を設定します (スポット ライトでのみ有効)。
public final {Renderer3d.set-light-spot-angle
light-index:int,
spot-angle:Angle
}:void
set-light-spot-exponent:指定されたライトのスポットの指数を設定します (スポット ライトでのみ有効)。
public final {Renderer3d.set-light-spot-exponent
light-index:int,
spot-exponent:double
}:void
set-light-style:特定のライトの LightStyle を設定します。
public final {Renderer3d.set-light-style
light-index:int,
style:LightStyle
}:void
set-viewport:この Renderer3d のビューポートを設定します。
public abstract {Renderer3d.set-viewport}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public {Renderer3d.default drawable:Drawable}:Renderer3d

与えられた Drawable で使用する Renderer3d を作成します。

注意事項

Drawable 用に作成されるレンダラーは 1 つだけ (Renderer3d または Renderer2d) です。2 つ以上を作成しようとすると例外がスローされます。



プロパティ詳細
alpha-function (アクセサ)
アクセサ public final Renderer3d.alpha-function:Compare
セッター public final Renderer3d.alpha-function:Compare

アルファ テスト用にアルファ比較関数を指定します。

説明

アルファ テストは、描画されているピクセルのアルファ値と定数リファレンス値 (Renderer3d.alpha-reference を参照) の比較の結果に応じてピクセルが描画されるかどうかを判別します。アルファ テストが有効 ( Renderer3d.alpha-test-enabled? を参照) な場合のみ比較が行われます。


alpha-reference (アクセサ)
アクセサ public final Renderer3d.alpha-reference:FloatFraction
セッター public final Renderer3d.alpha-reference:Fraction

アルファ テストで入力アルファ値と比較される参照値を指定します。

説明

Renderer3d.alpha-function を参照してください。


alpha-test-enabled? (アクセサ)
アクセサ public final Renderer3d.alpha-test-enabled?:bool
セッター public final Renderer3d.alpha-test-enabled?:bool

アルファ テストが行われるかどうかを指定します。

説明

Renderer3d.alpha-function を参照してください。


ambient-light-color (アクセサ)
アクセサ public final Renderer3d.ambient-light-color:Color
セッター public final Renderer3d.ambient-light-color:Color

方向性のないシーンの背景ライト。

説明

オブジェクトの影になる側を照らすのに使用します。


ambient-material-color (アクセサ)
アクセサ public final Renderer3d.ambient-material-color:Color
セッター public final Renderer3d.ambient-material-color:Color

照明オブジェクトで使用される周囲コンポーネント。



blend-dst-function (アクセサ)
アクセサ public final Renderer3d.blend-dst-function:Blend
セッター public final Renderer3d.blend-dst-function:Blend

出力先混合ファクターの算出方法を指定します。Blend を参照してください。

説明

混合は Renderer3d.blend-enabled? により有効になります。


blend-enabled? (アクセサ)
アクセサ public final Renderer3d.blend-enabled?:bool
セッター public final Renderer3d.blend-enabled?:bool

ピクセル混合が行われるかどうかを指定します。

説明

Renderer3d.blend-src-functionRenderer3d.blend-dst-function および Blend を参照してください。


blend-src-function (アクセサ)
アクセサ public final Renderer3d.blend-src-function:Blend
セッター public final Renderer3d.blend-src-function:Blend

ソース混合ファクターの算出方法を指定します。Blend を参照してください。

説明

混合は Renderer3d.blend-enabled? により有効になります。


cull-face (アクセサ)
アクセサ public final Renderer3d.cull-face:Cull
セッター public final Renderer3d.cull-face:Cull

レンダリングしない側。

説明

このプロパティは、Renderer3d.cull-face-enabled?true の場合のみ適用されます。有効な値は次のとおりです。オブジェクトの前面および背面は、その頂点の指定順序によって決められます。詳細については、「3D レンダリング」の章を参照してください。


cull-face-enabled? (アクセサ)
アクセサ public final Renderer3d.cull-face-enabled?:bool
セッター public final Renderer3d.cull-face-enabled?:bool

オブジェクトの片側のレンダリングを行わないようにするかどうかを指定します。

説明

既定値は false で、両側がレンダリングされます。このプロパティを true に設定した場合、Renderer3dRenderer3d.cull-face プロパティに従って、どちら側をカリングするか (つまり、どちら側を描画しないか) を決定します。


depth-function (アクセサ)
アクセサ public final Renderer3d.depth-function:Compare
セッター public final Renderer3d.depth-function:Compare

深度テスト用に深度比較関数を指定します。

説明

深度バッファリングの技術を使用すると、ビューアに近いオブジェクトがビューアから遠いオブジェクトのレンダリングによって覆い隠されないようにすることができます。'depth buffer' は、その位置で最後にレンダリングされたオブジェクトの深度を示す各ピクセルの値を含みます。レンダラーは、このバッファを使用して新しいオブジェクトをレンダリングし、新しいオブジェクトのどのピクセルが実際に表示可能になるのかを決定できます。

depth-function は、各入力ピクセルの z 値と深度バッファ内にある z 値を比較するのに使用される関数を指定します。深度バッファリングが有効な場合のみ、比較が行われます。Renderer3d.depth-test-enabled? を参照してください。


depth-test-enabled? (アクセサ)
アクセサ public final Renderer3d.depth-test-enabled?:bool
セッター public final Renderer3d.depth-test-enabled?:bool

深度バッファリング (z バッファリング) を有効にするかどうかを指定します。

説明

既定値は false で、最後にレンダリングされたオブジェクトは、そのピクセルのいずれかが他のレンダリングされたオブジェクトのピクセルより "遠い" かどうかに関係なく、"前面" にレンダリングされます。

深度バッファリングを有効にしても、レンダリングするオブジェクトが透明な場合は、前面にある透明なオブジェクトがその後ろにある不透明なオブジェクトを見せることを許可しているかどうか確認する必要があります。したがって、最初に不透明なオブジェクトをすべてレンダリングし、その後透明なオブジェクトを一番遠いオブジェクトから一番近いオブジェクトにレンダリングする必要があります。


depth-write-enabled? (アクセサ)
アクセサ public final Renderer3d.depth-write-enabled?:bool
セッター public final Renderer3d.depth-write-enabled?:bool

深度バッファへの書き込みが実行されるかどうかを指定します。Renderer3d.depth-test-enabled? を参照してください。

説明

無効の場合、以降のレンダリングは深度バッファの内容を変更しません。ただし、その内容に対してテストは行われます。これは、レンダリングしているオブジェクトがシーン内の何か他のものを覆い隠さないようにする場合に役立ちます。


diffuse-material-color (アクセサ)
アクセサ public final Renderer3d.diffuse-material-color:Color
セッター public final Renderer3d.diffuse-material-color:Color

照明オブジェクトで使用される拡散コンポーネント。現在の色も設定します。



fog-color (アクセサ)
アクセサ public final Renderer3d.fog-color:Color
セッター public final Renderer3d.fog-color:Color

フォグの色パラメータ。

説明

フォグの色は、フォグされるピクセル色を作成するために入力ピクセルと混合される色です。フォグ混合計算式の定義については FogMode を参照してください。

参照:

Renderer3d.fog-enabled?
FogMode
Renderer3d.fog-mode
Renderer3d.fog-start
Renderer3d.fog-end
Renderer3d.fog-density


fog-density (アクセサ)
アクセサ public final Renderer3d.fog-density:float
セッター public final Renderer3d.fog-density:double

フォグ濃度パラメータ。

説明

フォグ濃度は FogMode.exponential フォグ計算式および FogMode.sqr-exponential フォグ計算式で使用されます。負の数でない濃度のみが受け入れられます。既定のフォグ濃度は 1.0 です。フォグ混合計算式の定義については FogMode を参照してください。

参照:

Renderer3d.fog-enabled?
FogMode
Renderer3d.fog-mode
Renderer3d.fog-color
Renderer3d.fog-start
Renderer3d.fog-end


fog-enabled? (アクセサ)
アクセサ public final Renderer3d.fog-enabled?:bool
セッター public final Renderer3d.fog-enabled?:bool

レンダリングされる色に対するフォグのアプリケーションを有効、または無効にするブール値フラグ。

説明

true はフォグのアプリケーションを有効にし、false はフォグのアプリケーションを無効にします。フォグ混合計算式の定義については FogMode を参照してください。

参照:

FogMode
Renderer3d.fog-mode
Renderer3d.fog-color
Renderer3d.fog-start
Renderer3d.fog-end
Renderer3d.fog-density


fog-end (アクセサ)
アクセサ public final Renderer3d.fog-end:FloatDistance
セッター public final Renderer3d.fog-end:Distance

フォグ終点パラメータ。

説明

フォグの終点を指定します。FogMode.linear フォグ計算式で使用される遠い方の距離です。距離は、視点座標システムの視点 (0, 0, 0, 1) からの距離になります。既定のフォグ遠距離は 1m です。フォグ混合計算式の定義については FogMode を参照してください。

参照:

Renderer3d.fog-enabled?
FogMode
Renderer3d.fog-mode
Renderer3d.fog-color
Renderer3d.fog-start
Renderer3d.fog-density


fog-mode (アクセサ)
アクセサ public final Renderer3d.fog-mode:FogMode
セッター public final Renderer3d.fog-mode:FogMode

FogMode 列挙を使用して、フォグ混合ファクター f を算出するのに使用される計算式を指定します。

説明

フォグ混合計算式の定義については FogMode を参照してください。既定の fog-mode は FogMode.exponential です。

参照:

Renderer3d.fog-enabled?
FogMode
Renderer3d.fog-color
Renderer3d.fog-start
Renderer3d.fog-end
Renderer3d.fog-density


fog-start (アクセサ)
アクセサ public final Renderer3d.fog-start:FloatDistance
セッター public final Renderer3d.fog-start:Distance

フォグ始点パラメータ。

説明

フォグの始点を指定します。FogMode.linear フォグ計算式で使用される近い方の距離です。距離は、視点座標システムの視点 (0, 0, 0, 1) からの距離になります。既定のフォグ近距離は 0m です。フォグ混合計算式の定義については FogMode を参照してください。

参照:

Renderer3d.fog-enabled?
FogMode
Renderer3d.fog-mode
Renderer3d.fog-color
Renderer3d.fog-end
Renderer3d.fog-density


font (アクセサ)
アクセサ public final Renderer3d.font:Font
セッター public final Renderer3d.font:Font

Renderer3d の現在の Font



front-face (アクセサ)
アクセサ public final Renderer3d.front-face:Winding
セッター public final Renderer3d.front-face:Winding

ポリゴンが前面を向いているか背面に向いているかをカリングの論理が判別する方法を指定します。Renderer3d.cull-face を参照してください。

説明

カリングする面が "前面" かどうかを頂点の順序が判別します。Winding を参照してください。


lighting-enabled? (アクセサ)
アクセサ public final Renderer3d.lighting-enabled?:bool
セッター public final Renderer3d.lighting-enabled?:bool

この Renderer3d でレンダリングされたシーンで照明が有効かどうかを示します。

説明

モデルを照らすためには、


line-stipple (アクセサ)
アクセサ public final Renderer3d.line-stipple:uint16
セッター public final Renderer3d.line-stipple:uint16

行に適用される点描パターンを指定します。

説明

line-stipple のそれぞれのビットは、点描パターン内のピクセルを表します。設定されたそれぞれのビットに対して、ピクセルがレンダリングされ、存在しないそれぞれのビットに対しては、ピクセルはスキップされます。レンダリングは最下位ビットで開始します。0b0000111100001111 は、典型的な破線パターンを表します。

注意事項

行の点描は、すべての Renderer3d の実装ではサポートされません。Renderer3d.line-stipple-supported? が true を返す場合だけ使用可能です。それ以外の場合は、無視され、行は常に実線になります。


line-stipple-supported? (アクセサ)
アクセサ public abstract Renderer3d.line-stipple-supported?:bool

このレンダラーが、 Renderer3d.line-stipple 設定を使用して指定した方法で、行の点描を実際に実装するかどうかを示します。この値が false の場合、line-stipple 値に関係なく、すべての行は実線となります。



line-width (アクセサ)
アクセサ public final Renderer3d.line-width:FloatDistance
セッター public final Renderer3d.line-width:Distance

レンダリングされるラインの幅を指定する Distance

注意事項

ゼロではない幅は、すべての Renderer3d の実装ではサポートされません。幅が広い行は、Renderer3d.wide-lines-supported? が true を返す場合だけレンダリングされます。それ以外の場合、line-width は無視され、すべての行は単一のピクセルの幅になります。


max-lights (アクセサ)
アクセサ public final Renderer3d.max-lights:int

このレンダラーがサポートするライト数の最大値を取得します。



modelview-matrix (アクセサ)
アクセサ public abstract Renderer3d.modelview-matrix:Matrix3dStack

Renderer3d で使用されるモデル ビュー マトリックス スタックを返します。

説明

Matrix3dStack が与えられている場合、そのメソッドのいずれかを呼び出し、カメラの動きをシミュレーションしたり、オブジェクト変換を行います。


point-size (アクセサ)
アクセサ public final Renderer3d.point-size:FloatDistance
セッター public final Renderer3d.point-size:Distance

レンダリングされる点の直径を指定する Distance



projection-matrix (アクセサ)
アクセサ public abstract Renderer3d.projection-matrix:Matrix3dProjectionStack

Renderer3d で使用される投影マトリックス スタックを返します。

説明

Matrix3dProjectionStack が与えられている場合、レンダリングされたモデルをどのように表示するかに応じて、Matrix3dProjectionStack.ortho または Matrix3dProjectionStack.frustum のどちらかを呼び出します。それぞれ、表示可能なものの境界を決定する 3 次元ボリュームの特定の型を指定します。


resolution (アクセサ)
アクセサ public abstract Renderer3d.resolution:Resolution

解像度。ピクセル / このRenderer3d に関連付けられている DrawableDistance 単位。

説明

Renderer3dresolution を使用して、距離の単位をピクセルに変換します。


shade-model (アクセサ)
アクセサ public final Renderer3d.shade-model:Shading
セッター public final Renderer3d.shade-model:Shading

Renderer3d がフラット シェーディングを行うか、スムース シェーディングを行うかを指定します。

説明

Renderer3d がラインやポリゴンの形状を描画する時、shade-model は、一定色が使用されるか、形状の頂点の色が形状全体にわたって補間されるかを決定します。


specular-material-color (アクセサ)
アクセサ public final Renderer3d.specular-material-color:Color
セッター public final Renderer3d.specular-material-color:Color

照明オブジェクトで使用される鏡面コンポーネント。



specular-material-shininess (アクセサ)
アクセサ public final Renderer3d.specular-material-shininess:float
セッター public final Renderer3d.specular-material-shininess:double

鏡面ハイライトのサイズを制御します。

説明

val: 適切な値が [1.0, 40.0] の範囲に収まります。指定される値が小さいほど、鏡面ハイライト領域は大きくなります。


text-matrix (アクセサ)
アクセサ public sealed Renderer3d.text-matrix:Matrix2dStack

Renderer3d で使用されるテキスト マトリックス スタックを返します。

説明

Matrix2dStack-of の任意のメソッドを呼び出すと、テキストのベースラインを変換できます。


text-projection-matrix (アクセサ)
アクセサ public sealed Renderer3d.text-projection-matrix:Matrix2dProjectionStack

テキストの Renderer3d で使用される投影マトリックス スタックを返します。

説明

Matrix2dProjectionStack が与えられている場合は、 Matrix2dProjectionStack.ortho を呼び出して、テキストが表示される境界を決定する 2 次元の四角形を指定できます。


texture (アクセサ)
アクセサ public final Renderer3d.texture:Texture
セッター public final Renderer3d.texture:Texture

Renderer3d の現在の Texture

注意事項

既定値は白です。既定値にリセットするためには、これを Palette.white に設定します。


texture-matrix (アクセサ)
アクセサ public abstract Renderer3d.texture-matrix:UnitlessMatrix3dStack

Renderer3d で使用されるテクスチャ マトリックス スタックを返します。

説明

Matrix3dStack-of の任意のメソッドを呼び出すと、テクスチャ座標を変換できます。


texture-mode (アクセサ)
アクセサ public final Renderer3d.texture-mode:TextureMode
セッター public final Renderer3d.texture-mode:TextureMode

Renderer3d の現在の TextureMode



wide-lines-supported? (アクセサ)
アクセサ public abstract Renderer3d.wide-lines-supported?:bool

このレンダラーが単一のピクセルの太さ以上の行をレンダリングできるかどうかを示します。この値が false の場合、Renderer3d.line-width は無視され、すべての行は単一のピクセルの幅になります。





クラス プロシージャ詳細
create-offscreen (クラスプロシージャ)
public {Renderer3d.create-offscreen
width:Distance,
height:Distance,
resolution:Resolution = 0dpi,
use-host-rendering?:bool = false
}:(Renderer3d, Drawable)

オフスクリーン Drawable およびその上にレンダリングする Renderer3d を作成します。

注意事項

このプロシージャは、ほとんど Renderer2d.create-offscreen と同じですが、Renderer3d が返されること、および Drawable が 3D レンダリングを目的としていることは除きます。



メソッド詳細
clear (メソッド)
public abstract {Renderer3d.clear
color:#Color = {Palette.get-black},
depth:Fraction = nan
}:void

現在のビューポートで指定された表示領域全体、および指定された色と深度にクリッピングしている四角形をクリアします。

color: 表示領域に設定される色。この値が null の場合、表示領域の色は変更されません。

既定の色は黒です。
depth: 表示領域に設定される深度の値。既定値は nan です。この値を既定から変更しない場合、表示領域の深度は変更されません。

陰面消去を行うために深度バッファリング (Z バッファリングと呼ばれることもあります)

を使用するアプリケーションのみが、この設定を変更する必要があります。

0 の値は一番近い深度に相当し、1 の値は一番遠い深度に相当します。ただし、非標準投影マトリックスを使用していない場合に限ります。したがって、深度バッファリングを使用するほとんどのアプリケーションは、この引数を 1 に設定します。


get-font-ascent (メソッド)
public sealed {Renderer3d.get-font-ascent}:FloatDistance

現在のフォントの上昇量を示す FloatDistance を返します。

説明

現在のフォントの設定方法については font アクセッサを参照してください。また、それを一時的に設定する方法については with マクロを参照してください。


次の図では、文字列 "Jj" の ascent (上昇) を示しています。






get-font-descent (メソッド)
public sealed {Renderer3d.get-font-descent}:FloatDistance

現在のフォントの下降量を示す FloatDistance を返します。

説明

現在のフォントの設定方法については font アクセッサを参照してください。また、それを一時的に設定する方法については with マクロを参照してください。


次の図では、文字列 "Jj" の descent (下降) を示しています。






get-font-line-gap (メソッド)
public sealed {Renderer3d.get-font-line-gap}:FloatDistance

現在のフォントのテキストの行間長を示す FloatDistance を返します。

説明

現在のフォントの設定方法については font アクセッサを参照してください。また、それを一時的に設定する方法については with マクロを参照してください。


次の図では、文字列 "Jj" の line-gap (行間長) を示しています。






get-font-names (メソッド)
public sealed {Renderer3d.get-font-names}:{Array-of String}

この Renderer3d に使用可能なフォント名をすべて取得します。



get-font-underline-position (メソッド)
public sealed {Renderer3d.get-font-underline-position}:FloatDistance

ベースラインを基準として、現在のフォントで下線がレンダリングされる位置を示す FloatDistance を返します。

説明

現在のフォントの設定方法については font アクセッサを参照してください。また、それを一時的に設定する方法については with マクロを参照してください。


次の図では、文字列 "Jj" の underline-position を示しています。






get-font-underline-thickness (メソッド)
public sealed {Renderer3d.get-font-underline-thickness}:FloatDistance

現在のフォントの下線の太さを示す FloatDistance を返します。

説明

現在のフォントの設定方法については font アクセッサを参照してください。また、それを一時的に設定する方法については with マクロを参照してください。


get-light-diffuse-color (メソッド)
public final {Renderer3d.get-light-diffuse-color light-index:int}:Color

指定されたライトの拡散色を取得します。



get-light-direction-eye-space (メソッド)
public final {Renderer3d.get-light-direction-eye-space
light-index:int
}:FloatDirection3d

指定されたライトの視点空間での方向を取得します。

説明

このメソッドは方向ライトおよびスポット ライトでのみ有効です。


get-light-enable (メソッド)
public final {Renderer3d.get-light-enable light-index:int}:bool

指定されたライトが有効かどうか (または オフ) を示します。



get-light-position-eye-space (メソッド)
public final {Renderer3d.get-light-position-eye-space
light-index:int
}:FloatDistance3d

指定されたライトの視点空間での位置を取得します (ポイント ライトおよびスポット ライトでのみ有効です)。



get-light-specular-color (メソッド)
public final {Renderer3d.get-light-specular-color
light-index:int
}:Color

指定されたライトの鏡面色を取得します。



get-light-spot-angle (メソッド)
public final {Renderer3d.get-light-spot-angle
light-index:int
}:FloatAngle

指定されたライトのスポットの角度を取得します (スポット ライトでのみ有効)。



get-light-spot-exponent (メソッド)
public final {Renderer3d.get-light-spot-exponent light-index:int}:float

指定されたライトのスポットの指数を取得します (スポット ライトでのみ有効)。

注意事項

スポットの指数は、光線の中心からスポット ライトの強度が減少していく量を指定します。スポットの指数は 0 から 128 までの値に設定されます。値が大きいほど、より多く減少していくことになります。


get-light-style (メソッド)
public final {Renderer3d.get-light-style light-index:int}:LightStyle

LightStyle を取得します。



get-string-advance-width (メソッド)
public sealed {Renderer3d.get-string-advance-width
string:StringInterface,
start-index:int = 0,
length:int = string.size - start-index
}:FloatDistance

文字列の幅を返します。

説明

この値は、レンダリングされる時の文字列の幅を示します。これは Renderer3d.text-matrix および Renderer3d.text-projection-matrix によって影響を受けます。

テキストをレンダリングした後、テキストの次の部分を配置する場所を決定するためにこのメソッドを使用します。


get-viewport (メソッド)
public abstract {Renderer3d.get-viewport
}:(x:FloatDistance, y:FloatDistance, width:FloatDistance, height:FloatDistance)

この Renderer3d のビューポートを取得します。

説明

ビューポートは、すべてのレンダリングが行われるレンダリング面にウィンドウを定義します。投影マトリックス (Matrix3dProjectionStack で解説済み) の端 (左、右、上および下) は、ビューポートの端にマップされます。
x, y: レンダリング面のビューポートの左上隅。
width, height: レンダリング面のビューポートの幅と高さ。


render-drawable (メソッド)
public {Renderer3d.render-drawable
dst-x:Distance,
dst-y:Distance,
dst-width:Distance,
dst-height:Distance,
src:Drawable,
src-x:Distance = 0m,
src-y:Distance = 0m,
src-width:Distance = src.width asa Distance,
src-height:Distance = src.height asa Distance
}:void

Drawable の内容を出力先四角形にレンダリングします。ソース四角形がオプションで指定できます。

dst-x: ターゲット Drawable の出力先四角形の左端の x 座標。
dst-y: ターゲット Drawable の出力先四角形の上端の y 座標。
dst-width: ターゲット Drawable の出力先四角形の幅。これはゼロより大きい値である必要があります。
dst-height: ターゲット Drawable の出力先四角形の高さ。これはゼロより大きい値である必要があります。
src: ターゲット Drawable の上に描画されるソース 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-widthsrc-heightdst-width および dst-height はすべてゼロより大きい必要があります。

dst-xdst-y は 0 より小さくできますが、その場合ソース Drawable はクリップされます。また、これらはターゲットの幅や高さより大きくできますが、その場合は何も描画されません。

ソース DrawableRenderer3d の変換マトリックスでは変換されません。このメソッドは単に Drawable を別の Drawable の上にコピーするだけです。


render-ellipse (メソッド)
public {Renderer3d.render-ellipse
x:Distance,
y:Distance,
z:Distance,
width:Distance,
height:Distance,
texture:Texture = self.texture,
start:Angle = 0degrees,
stop:Angle = 360degrees,
wedge?:bool = true
}:void

塗りつぶされた楕円形をレンダリングします。

説明

楕円形の全体または一部をレンダリングします。楕円形全体と同じように楕円形の境界ボックスを指定します。
x, y, z: 境界ボックスの左上隅。
width, height: 境界ボックスの幅と高さ。
texture: 楕円形をレンダリングする、オプションの Texture。指定された場合、このパラメータは Renderer3d.texture の現在の値をオーバーライドします。
start: 開始する扇形の切片 (楕円形全体を描画するのではなく) の角度。0deg は 3 時の位置になります。
stop: 停止する扇形の切片の角度。切片は start から時計回りに移動して描画されます。
wedge?: wedge? が true (既定) の場合、楕円形は、楕円形の周辺と楕円形の中心を結んだ一連の三角形で塗りつぶされます。wedge? が false の場合、filled-in 領域は楕円の周辺に沿った点によってのみ境界をつけられます。このパラメータは start 引数および stop 引数が楕円形全体を定義していない場合のみ有効です。


render-elliptic-path (メソッド)
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: 境界ボックスの幅と高さ。
texture: 楕円形をレンダリングする、オプションの Texture。指定された場合、このパラメータは Renderer3d.texture の現在の値をオーバーライドします。
line-width: 楕円形をレンダリングする、オプションのライン幅。指定された場合、このパラメータは Renderer3d.line-width の現在の値をオーバーライドします。line-width0m の場合、これは細いラインを示します。
line-stipple: 行をレンダリングするために使用される、オプションの点描パターン。既定値は self.line-stipple です。詳細については、Renderer3d.line-stipple を参照してください。
start: 開始する扇形の切片 (楕円形全体を描画するのではなく) の角度。0deg は 3 時の位置になります。
stop: 停止する扇形の切片の角度。切片は start から時計回りに移動して描画されます。
wedge?: 切片の周辺全体をレンダリングするかどうかを指定します。これが true (および start 引数と stop 引数が楕円形全体を定義していない) 場合、このメソッドは放射型も描画します。


render-glyph-2d (メソッド)
public sealed {Renderer3d.render-glyph-2d
x:Distance,
y:Distance,
code:int,
code-is-glyph-index?:bool = false,
texture:Texture = self.texture
}:void

Renderer3dDrawable に文字をレンダリングします。

説明

x および y は、文字がレンダリングされる 2D の位置を決定します。これらの座標は Renderer3d.text-matrix および Renderer3d.text-projection-matrix によって影響を受けますが、Renderer3d.modelview-matrix または Renderer3d.projection-matrix には影響は受けません。

このメソッド実行中は、深度バッファは使用できません。これは後で以前の状態に復元されます。
x: ベースライン位置の x 座標。
y: ベースライン位置の y 座標。
code: レンダリングする文字またはグリフのインデックスの配列。code-is-glyph-index? が true で、codeuint16 と互換性のある値の場合、それはグリフのインデックスとして使用されます。code-is-glyph-index? が false(デフォルト)で、codechar 型と互換性がある値の場合、code は、char にキャストされ、対応するグリフのインデックスがフォントから取得されます。code が適した型と互換性がない場合、未知のグリフ(一般的には、四角またはドット)がレンダリングされます。
code-is-glyph-index?: code が文字として扱われるか、グリフのインデックスとして扱われるのかを示します。
texture: 文字列をレンダリングする、オプションの Texture。これが省略された場合は、Renderer3d.texture が使用されます。


render-glyph-2d-from-array (メソッド)
public sealed {Renderer3d.render-glyph-2d-from-array
codes:{FastArray-of int},
locations:{FastArray-of Distance2d},
texture:Texture = self.texture,
codes-are-glyph-indices?:bool = false
}:void

Renderer3dDrawable に文字の配列をレンダリングします。

説明

locations は文字がレンダリングされる 2D の位置を決定します。これらの座標は Renderer3d.text-matrix および Renderer3d.text-projection-matrix によって影響を受けますが、 Renderer3d.modelview-matrix または Renderer3d.projection-matrix には影響は受けません。
codes: レンダリングする文字またはグリフのインデックスの配列。code-is-glyph-index? が true の場合、uint16 と互換性がある値は、グリフのインデックスとして使用されます。code-is-glyph-index? が false の場合(デフォルト)、char と互換性がある値は、char にキャストされ、対応するグリフのインデックスが、フォントから取得されます。値が適した型と互換性がない場合、未知のグリフ(一般的には、四角またはドット)がレンダリングされます。
locations: 各文字をレンダリングする位置の配列。
texture: 文字列をレンダリングする、オプションの Texture。これが省略された場合は、Renderer3d.texture の値が使用されます。
codes-are-glyph-indices?: codes 内の値が、文字として扱われるかグリフのインデックスとして扱われるのかを示します。


render-line (メソッド)
public {Renderer3d.render-line
start:Distance3d,
end:Distance3d,
texture:Texture = self.texture,
line-width:Distance = self.line-width asa Distance,
line-stipple:uint16 = self.line-stipple
}:void

始点および終点を与えられたライン セグメントをレンダリングします。

start: 開始するラインの場所を指定する Distance3d
end: 終了するラインの場所を指定する Distance3d
texture: ラインを描画するのに使用される Texture オブジェクト。既定値は self.texture です。
line-width: 描画されるライン セグメントの幅。既定値は self.line-width です。
line-stipple: 行をレンダリングするために使用される点描パターン。既定値は self.line-stipple です。詳細については、Renderer3d.line-stipple を参照してください。

注意事項

start および end で指定された点は、現在の Renderer3d.modelview-matrix を使用して変換されます。


render-pixmap (メソッド)
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 のスケール変更および世界空間の右下座標を与えるために変換された左上座標からのオフセットによって変換されます。その後、世界空間の左上と右下は、投影され、ピクセル グリッドに揃えられ、ピクスマップをレンダリングするために使用されます。


render-rectangle (メソッド)
public {Renderer3d.render-rectangle
x:Distance,
y:Distance,
z:Distance,
width:Distance,
height:Distance,
texture:Texture = self.texture
}: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 を参照してください。


render-string-2d (メソッド)
public sealed {Renderer3d.render-string-2d
x:Distance,
y:Distance,
ndc-z:float = 0,
string:StringInterface,
texture:Texture = self.texture,
start:int = 0,
length:int = string.size - start,
depth-test-enabled?:bool = false
}:Distance

Renderer3dDrawableString をレンダリングします。

説明

x および y は、文字列がレンダリングされる 2D の位置を決定します。これらの座標は Renderer3d.text-matrix および Renderer3d.text-projection-matrix によって影響を受けますが、Renderer3d.modelview-matrix または Renderer3d.projection-matrix には影響は受けません。

このメソッド実行中は、深度バッファは使用できません。これは後で以前の状態に復元されます。
x: 開始ベースライン位置の x 座標。
y: 開始ベースライン位置の y 座標。
ndc-z: 正規化されたデバイス座標の z 座標。値は -1 から 1 までの範囲にある必要があります (-1 はクリッピング近面にあり、1 はクリッピング遠面にあります)。既定値は 0 です。このパラメータは depth-test-enabled? が true の場合のみ有効です。
string: レンダリングする文字列。
texture: 文字列をレンダリングする、オプションの Texture。これが省略された場合は、Renderer3d.texture の値が使用されます。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。
depth-test-enabled?: 文字列がレンダリングされる時に深度テストが実行されるかどうかを指定するブール値。使用される z 値は ndc-z パラメータで指定されます。既定値は false です。

戻り値

レンダリングされた文字列の Distance としての幅。


render-triangle-fan (メソッド)
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: ポリゴンのパスの幅。
...: Distance2d または Distance3d として指定された頂点。


render-vertices (メソッド)
public {Renderer3d.render-vertices
type:PrimitiveType,
vertex-array:{FastArray-of {Vector3d-of FloatDistance}},
normal-array:#{FastArray-of {Vector3d-of float}} = null,
color-array:#{FastArray-of Pixel} = null,
specular-array:#{FastArray-of Pixel} = null,
texture-coord-array:#{FastArray-of {Vector2d-of float}} = null
}:void

配列に定義されたプリミティブのセットを効率的にレンダリングします。

type: レンダリングするプリミティブの型。プリミティブのさまざまな型については PrimitiveType を参照してください。
vertex-array: レンダリングする頂点をリストする {FastArray-of FloatDistance3d}Array-of が与えられている場合は、基礎となる FastArray-ofArray-of.underlying-FastArray ゲッターを使用して取得できます。
normal-array: 各頂点の法線を提供するオプションの {FastArray-of FloatDirection3d}。指定された場合、この配列は少なくとも vertex-array 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は {FloatDirection3d 0, 0, 1} と見なされます。
color-array: 各頂点の拡散色を提供するオプションの {FastArray-of Pixel}。指定された場合、この配列は少なくとも vertices 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は
{Pixel.create 1, 1,
1}
と見なされます。
specular-array: 各頂点の鏡面色を提供するオプションの {FastArray-of Pixel}。指定された場合、この配列は少なくとも vertices 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は
{Pixel.create 0, 0,
0, alpha = 0}
と見なされます。
texture-coord-array: 各頂点のテクスチャ座標を提供するオプションの {FastArray-of Fraction2d}。指定された場合、この配列は少なくとも vertices 配列と同じ数のエントリを含みます。このパラメータが指定されない場合は、各頂点は
{Fraction2d
0, 0}
と見なされます。

説明

これはプリミティブの配列をレンダリングする効率的な方法です。

呼び出し:
{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 を呼び出すことより非常に効率的です。


set-clipping-rectangle (メソッド)
public abstract {Renderer3d.set-clipping-rectangle}:void

この Renderer3d のクリッピング四角形を設定します。

説明

クリッピング四角形は、ピクセルが外側に描画されていないレンダリングの四角形を定義します。

viewport ( Renderer3d.set-viewport を使用して設定されます) と異なり、クリッピング四角形は投影マトリックスとは関係ありません。
x, y: レンダリング面のクリッピング四角形の左上隅。
width, height: レンダリング面のクリッピング四角形の幅と高さ。これらの値は負であってはなりません。


set-light-diffuse-color (メソッド)
public final {Renderer3d.set-light-diffuse-color
light-index:int,
color:Color
}:void

指定されたライトの拡散色を設定します。



set-light-direction (メソッド)
public final {Renderer3d.set-light-direction
light-index:int,
direction:Direction3d,
eye-space?:bool = false
}:void

指定されたライトの方向を設定します (ポイント ライトおよびスポット ライトでのみ有効)。

light-index: 方向を設定するライトのインデックス。
direction: ライトの方向。
eye-space?: direction の解釈方法を制御します。

注意事項

eye-space?=true を使用して、視点空間 (カメラ空間) のライトの位置を設定します。これはヘッドライトを有効にします。


set-light-enable (メソッド)
public final {Renderer3d.set-light-enable
light-index:int,
enable?:bool
}:void

指定されたライトを有効または無効にします。

light-index: 有効または無効にするライトのインデックス値。
enable?: 有効にするためには、enable?true に設定します。無効にするためには false を設定します。


set-light-position (メソッド)
public final {Renderer3d.set-light-position
light-index:int,
position:Distance3d,
eye-space?:bool = false
}:void

指定されたライトの位置を設定します (ポイント ライトおよびスポット ライトでのみ有効)。

light-index: 位置を設定するライトのインデックス
position: ライトの位置。
eye-space?: direction の解釈方法を制御します。

注意事項

eye-space?=true を使用して、視点空間 (カメラ空間) のライトの位置を設定します。これはヘッドライトを有効にします。


set-light-specular-color (メソッド)
public final {Renderer3d.set-light-specular-color
light-index:int,
color:Color
}:void

指定されたライトの鏡面色を設定します。



set-light-spot-angle (メソッド)
public final {Renderer3d.set-light-spot-angle
light-index:int,
spot-angle:Angle
}:void

指定されたライトのスポットの角度を設定します (スポット ライトでのみ有効)。



set-light-spot-exponent (メソッド)
public final {Renderer3d.set-light-spot-exponent
light-index:int,
spot-exponent:double
}:void

指定されたライトのスポットの指数を設定します (スポット ライトでのみ有効)。

注意事項

スポットの指数は、光線の中心からスポット ライトの強度が減少していく量を指定します。スポットの指数は 0 から 128 までの値に設定されます。値が大きいほど、より多く減少していくことになります。


set-light-style (メソッド)
public final {Renderer3d.set-light-style
light-index:int,
style:LightStyle
}:void

特定のライトの LightStyle を設定します。



set-viewport (メソッド)
public abstract {Renderer3d.set-viewport}:void

この Renderer3d のビューポートを設定します。

説明

ビューポートは、すべてのレンダリングが行われるレンダリング面にウィンドウを定義します。投影マトリックス (Matrix3dProjectionStack で解説済み) の端 (左、右、上および下) は、ビューポートの端にマップされます。
x, y: レンダリング面のビューポートの左上隅。
width, height: レンダリング面のビューポートの幅と高さ。