S3GLSystem
Extends:
WebGLレンダリングシステムを管理するクラス。 シェーダー、テクスチャ、バッファオブジェクトの生成・管理、および描画制御を担当。 WebGLの初期化やプログラムのセットアップ、シーンの描画などの処理を含む。
Constructor Summary
Public Constructor | ||
public |
S3GLSystemインスタンスを生成します。 WebGLコンテキストやプログラムの初期設定を行います。 |
Member Summary
Public Members | ||
public |
canvas: HTMLCanvasElement |
|
public |
gl: WebGLRenderingContext |
|
public |
glfunc: {"createBufferVBO": *, "createBufferIBO": *, "deleteBuffer": *, "createTexture": *, "deleteTexture": *, "createProgram": *, "deleteProgram": *, "createShader": *, "deleteShader": *} WebGLバッファ、テクスチャ、シェーダを作成・削除するユーティリティ関数群。 |
|
public |
|
|
public |
|
|
public |
|
|
public |
|
Private Members | ||
private |
_textureDummyData: WebGLTexture |
|
private |
|
Method Summary
Public Methods | ||
public |
描画クリア処理を行います(背景色・深度バッファのリセット)。 |
|
public |
GL用のカメラインスタンスを生成します。 |
|
public |
GL用のライトインスタンスを生成します。 |
|
public |
createMaterial(name: string): S3GLMaterial GL用のマテリアルインスタンスを生成します。 |
|
public |
GL用のメッシュインスタンスを生成します。 |
|
public |
GL用のモデルインスタンスを生成します。 |
|
public |
新しいシェーダープログラムを生成し取得します。 |
|
public |
GL用のシーンインスタンスを生成します。 |
|
public |
createTexture(name: string | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): S3GLTexture GL用のテクスチャインスタンスを生成します。 |
|
public |
createTriangleIndex(i1: number, i2: number, i3: number, indexlist: Array<number>, materialIndex: number, uvlist: Array<S3Vector>): S3GLTriangleIndex GL用の三角形インデックスインスタンスを生成します。 |
|
public |
createVertex(position: S3Vector): S3GLVertex GL用の頂点インスタンス(S3GLVertex)を生成します。 |
|
public |
deleteBuffer(data: WebGLBuffer): boolean 指定したWebGLバッファを削除します。 |
|
public |
登録されている全てのシェーダープログラムを破棄します。 |
|
public |
drawElements(indexsize: number): boolean 指定されたインデックスサイズに基づいて要素を描画します。 |
|
public |
シーン全体を描画します。 プログラム設定や深度・カリングモードの設定、各種Uniformやモデルバインド・描画を自動実行します。 |
|
public |
getGL(): WebGLRenderingContext WebGLコンテキストを取得します。 |
|
public |
WebGLコンテキストが設定されているかを確認します。 |
|
public |
setCanvas(canvas: HTMLCanvasElement) 描画対象となるCanvasを設定します。 |
|
public |
setProgram(glprogram: S3GLProgram): boolean シェーダープログラムをアクティブにします。 |
Private Methods | ||
private |
モデル・uniforms・名前と値を与えた場合のデータバインド処理を実行します。
|
|
private |
_bindEnd() 描画後処理として、バインド状態の解放やクリーンアップを行います。 (本実装では何もしていません。拡張用) |
|
private |
描画前処理として、アクティブなテクスチャIDをリセットします。 通常は内部的に呼ばれます。 |
|
private |
_disposeObject(obj: Object): void 不要になったリソースを解放します(未実装)。 |
|
private |
_getDummyTexture(): WebGLTexture 1x1ピクセルのダミーテクスチャ(WebGLTexture)を取得します。 まだ生成されていない場合は新規作成します。テクスチャ未指定時の代替として利用されます。 |
|
private |
WebGLのカリングモード(描画面の制御)を設定します。 カリングの有無・前面/背面/両面の設定も行います。 |
|
private |
深度バッファのテストモードをWebGLで有効化します。 通常は自動的に呼ばれます。 |
Public Constructors
Public Members
public canvas: HTMLCanvasElement source
public gl: WebGLRenderingContext source
public glfunc: {"createBufferVBO": *, "createBufferIBO": *, "deleteBuffer": *, "createTexture": *, "deleteTexture": *, "createProgram": *, "deleteProgram": *, "createShader": *, "deleteShader": *} source
WebGLバッファ、テクスチャ、シェーダを作成・削除するユーティリティ関数群。
public program: S3GLProgram source
public program_list: Array<S3GLProgram> source
Private Members
private _textureDummyData: WebGLTexture source
Public Methods
public createMaterial(name: string): S3GLMaterial source
GL用のマテリアルインスタンスを生成します。
Params:
Name | Type | Attribute | Description |
name | string |
|
マテリアル名 |
public createTexture(name: string | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): S3GLTexture source
GL用のテクスチャインスタンスを生成します。
Params:
Name | Type | Attribute | Description |
name | string | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement |
|
テクスチャ名や画像データ |
public createTriangleIndex(i1: number, i2: number, i3: number, indexlist: Array<number>, materialIndex: number, uvlist: Array<S3Vector>): S3GLTriangleIndex source
GL用の三角形インデックスインスタンスを生成します。
public createVertex(position: S3Vector): S3GLVertex source
GL用の頂点インスタンス(S3GLVertex)を生成します。
Params:
Name | Type | Attribute | Description |
position | S3Vector | 頂点座標 |
public deleteBuffer(data: WebGLBuffer): boolean source
指定したWebGLバッファを削除します。
Params:
Name | Type | Attribute | Description |
data | WebGLBuffer | 削除するバッファオブジェクト |
public drawElements(indexsize: number): boolean source
指定されたインデックスサイズに基づいて要素を描画します。
Params:
Name | Type | Attribute | Description |
indexsize | number | インデックスバッファのサイズ |
public drawScene(scene: S3GLScene): void source
シーン全体を描画します。 プログラム設定や深度・カリングモードの設定、各種Uniformやモデルバインド・描画を自動実行します。
Params:
Name | Type | Attribute | Description |
scene | S3GLScene | 描画対象のシーン |
Return:
void |
public getGL(): WebGLRenderingContext source
WebGLコンテキストを取得します。
Return:
WebGLRenderingContext | WebGLコンテキスト |
public setCanvas(canvas: HTMLCanvasElement) source
描画対象となるCanvasを設定します。
Params:
Name | Type | Attribute | Description |
canvas | HTMLCanvasElement | 描画対象のCanvas要素 |
public setProgram(glprogram: S3GLProgram): boolean source
シェーダープログラムをアクティブにします。
Params:
Name | Type | Attribute | Description |
glprogram | S3GLProgram | アクティブに設定するシェーダープログラム |
Private Methods
private _bind(args: ...any): number source
モデル・uniforms・名前と値を与えた場合のデータバインド処理を実行します。
- 2引数: シェーダ変数名とデータをバインド
- 1引数: S3GLModelならメッシュ情報をバインド
- 1引数: uniforms情報ならすべてのuniformsをバインド
Params:
Name | Type | Attribute | Description |
args | ...any | バインド対象 |
private _disposeObject(obj: Object): void source
不要になったリソースを解放します(未実装)。
Params:
Name | Type | Attribute | Description |
obj | Object | 解放対象のオブジェクト |
Return:
void |
private _getDummyTexture(): WebGLTexture source
1x1ピクセルのダミーテクスチャ(WebGLTexture)を取得します。 まだ生成されていない場合は新規作成します。テクスチャ未指定時の代替として利用されます。
Return:
WebGLTexture | ダミーテクスチャのWebGLTextureオブジェクト |