AviUtl 拡張編集スクリプトで GLSL を使用するための DLL です。
お使いの PC が OpenGL 4.6 に対応している必要があります。
最新の patch.aul の導入を推奨します。
- Microsoft Visual C++ 再頒布可能パッケージがインストールされている必要があります。お使いの PC にまだインストールされていない場合はあらかじめインストールしてください。
- アーキテクチャは x86 用のものが必要です。
- バージョンは Visual Studio 2022 に対応したものが必要です。
- 例えば Microsoft Visual C++ 2015-2022 再頒布可能パッケージがインストールされていれば問題ありません。
- インストーラのダウンロードやインストール方法については以下を参照してください。
- Releases から最新版の ZIP ファイルをダウンロードしてください。
- ZIP ファイルを展開し、以下のファイルを適切な場所に配置してください。
GLShaderKit.dll
:exedit.auf
と同じ場所GLShaderKit.ini
:GLShaderKit.dll
と同じ場所
Note
GLShaderKit.dll
は script
フォルダ内に置いても動作しますが、スクリプトを作者ごとにフォルダ分けする場合などを想定して推奨は exedit.auf
と同じ場所とします。
分かっている人は script
フォルダ内や module
フォルダ内でも問題ありません。
Warning
GLShaderKit v0.2.0 から更新する場合は GLShaderKit.auf
, GLShaderKit.ini
, GLShaderKit.lua
を削除してから導入してください。
GLShaderKit を使用したスクリプト・シェーダーのサンプルは example を参照してください。
GLShaderKit.dll
と同じフォルダに置いた GLShaderKit.ini
は設定ファイルです。
項目名 | 説明 |
---|---|
shaderCacheCapacity |
シェーダープログラムのキャッシュ数 |
DLL で提供される関数は以下の通りです。
DLL のバージョンを取得する。
型 | 説明 |
---|---|
string | DLLのバージョン(例: 0.1.0 ) |
DLL の初期化が完了しているかどうかを取得する。
型 | 説明 |
---|---|
boolean | true なら DLL は利用可能、false なら DLL は利用できない |
glGetString(GL_VENDOR)
の結果を返す。
型 | 説明 |
---|---|
string | OpenGL 実装のベンダー |
glGetString(GL_RENDERER)
の結果を返す。
型 | 説明 |
---|---|
string | OpenGL レンダラー |
glGetString(GL_VERSION)
の結果を返す。
型 | 説明 |
---|---|
string | OpenGL バージョン |
glGetString(GL_SHADING_LANGUAGE_VERSION)
の結果を返す。
型 | 説明 |
---|---|
string | GLSL バージョン |
レンダリングコンテキストを有効化する。 スクリプト内でDLLの機能を利用する前に1回実行すること。
型 | 説明 |
---|---|
boolean | true なら成功、false なら失敗 |
レンダリングコンテキストを無香かする。 スクリプト内でDLLの機能を利用し終わった後に1回実行すること。
なし
板ポリゴンを表す頂点配列オブジェクトを利用可能にする。
板ポリゴンは横に n 分割、縦に n 分割される。
名前 | 型 | 説明 |
---|---|---|
n | int | 板ポリゴンの分割数。1以上の整数。 |
なし
location | 型 | 説明 |
---|---|---|
0 | vec3 | 頂点座標 |
1 | vec2 | テクスチャ座標 |
n 個の点群を表す頂点配列オブジェクトを利用可能にする。
名前 | 型 | 説明 |
---|---|---|
n | int | 頂点数。1以上の整数。 |
なし
location | 型 | 説明 |
---|---|---|
0 | float | 頂点番号 |
シェーダープログラムを利用可能にする。
指定したシェーダーのソースファイルをコンパイル・リンクして利用可能な状態にする。 引数で指定するファイルは1個だけだが、ファイル名が同じで拡張子が対応しているファイルが見つかれば自動で読み込まれる。
頂点シェーダーが見つからない場合は以下のデフォルト頂点シェーダーが使用される。
#version 460 core
layout(location = 0) in vec3 iPos;
layout(location = 1) in vec2 iTexCoord;
out vec2 TexCoord;
void main() {
gl_Position = vec4(iPos, 1.0);
TexCoord = iTexCoord;
}
シェーダープログラムのコンパイル・リンク時にエラーがあった場合はコンソールウィンドウにエラーメッセージが表示される。
コンパイル・リンクされたシェーダープログラムは一定個数キャッシュされる。
名前 | 型 | 説明 |
---|---|---|
shaderPath | string | シェーダーのソースファイルの絶対パス |
forceReload | boolean | true ならシェーダープログラムがキャッシュされていても再コンパイルする |
なし
拡張子 | 種類 |
---|---|
.vert |
頂点シェーダー |
.frag |
フラグメントシェーダー |
.tesc |
テッセレーション制御シェーダー |
.tese |
テッセレーション評価シェーダー |
.geom |
ジオメトリシェーダー |
ユニフォーム変数を設定する。
引数に渡した個数に応じて float
, vec2
, vec3
, vec4
型の値を設定する。
setShader
の後に実行すること。
名前 | 型 | 説明 |
---|---|---|
name | string | ユニフォーム変数の名前 |
x | number | 値1 |
y | number | 値2 |
x | number | 値3 |
w | number | 値4 |
なし
ユニフォーム変数を設定する。
引数に渡した個数に応じて int
, ivec2
, ivec3
, ivec4
型の値を設定する。
setShader
の後に実行すること。
名前 | 型 | 説明 |
---|---|---|
name | string | ユニフォーム変数の名前 |
x | int | 値1 |
y | int | 値2 |
x | int | 値3 |
w | int | 値4 |
なし
ユニフォーム変数を設定する。
引数に渡した個数に応じて uint
, uvec2
, uvec3
, uvec4
型の値を設定する。
setShader
の後に実行すること。
名前 | 型 | 説明 |
---|---|---|
name | string | ユニフォーム変数の名前 |
x | uint | 値1 |
y | uint | 値2 |
x | uint | 値3 |
w | uint | 値4 |
なし
行列のユニフォーム変数を設定する。
setShader
の後に実行すること。
名前 | 型 | 説明 |
---|---|---|
name | string | ユニフォーム変数の名前 |
type | string | 行列の形 (2x2 , 3x3 , 4x4 , 2x3 , 3x2 , 2x4 , 4x2 , 3x4 , 4x3 ) |
transpose | boolean | true なら転置する |
value | array | 行列の各要素の値。要素数は行列の要素数とあわせること |
なし
テクスチャをバインドする。
名前 | 型 | 説明 |
---|---|---|
unit | int | テクスチャのユニット番号 |
data | userdata | テクスチャのBGRA配列へのポインタ |
width | int | テクスチャの幅 |
height | int | テクスチャの高さ |
なし
描画する。
名前 | 型 | 説明 |
---|---|---|
mode | string | 描画するプリミティブ |
data | userdata | 描画先ののBGRA配列へのポインタ |
width | int | 描画先の幅 |
height | int | 描画先の高さ |
instanceCount | int | 描画インスタンス数。1以上の整数 |
なし
mode |
---|
POINTS |
LINE_STRIP |
LINE_LOOP |
LINES |
LINE_STRIP_ADJACENCY |
LINES_ADJACENCY |
TRIANGLE_STRIP |
TRIANGLE_FAN |
TRIANGLES |
TRIANGLE_STRIP_ADJACENCY |
TRIANGLES_ADJACENCY |
PATCHES |
vendor/lua
の中に lua5_1_4_Win32_dll8_lib
の中身を全てコピーしてください。
MSVC (VS2022)、CMake がインストールされた環境で以下のコマンドを実行してください。
cmake --preset default
cmake --build .\build --preset release
MIT License に基づきます。
Glad 2 にて出力したコード
https://github.com/Dav1dde/glad
(WTFPL OR CC0-1.0) AND Apache-2.0
Copyright (c) 2008-2018 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Materials.
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
http://luabinaries.sourceforge.net/
Copyright © 2005-2021 Tecgraf/PUC-Rio and the Kepler Project.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 複数のテクスチャを使用する際に意図したテクスチャにならないことがある問題を修正 (#11)
- Radeon 環境だと AviUtl を閉じれないことがある問題を再修正 (#8)
- auf から dll に戻した
- Radeon 環境だと AviUtl を閉じれないことがある問題を修正 (#7)
- dll から auf に変更
- 初版