atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
OpenGL ES 2.0 / GLSL 1.0
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
OpenGL ES 2.0 / GLSL 1.0
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
OpenGL ES 2.0 / GLSL 1.0
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • OpenGL ES 2.0 / GLSL 1.0
  • GLSLの基礎

OpenGL ES 2.0 / GLSL 1.0

GLSLの基礎

最終更新:2011年01月31日 15:46

opengles

- view
だれでも歓迎! 編集
updated on 2011/01/31 15:46:08

変数と変数型

変数型 説明
float, int, bool スカラーのデータ型(浮動小数点値、整数値、ブール値)
float, vec2, vec3, vec4 浮動小数点のベクトル型(1~4成分)
int, ivec2, ivec3, ivec4 整数のベクトル型(1~4成分)
bool, bvec2, bvec3, bvec4 ブールベクトル型(1~4成分)
mat2, mat3, mat4 浮動小数点の行列(2x2~4x4)
sampler2D, samplerCube テクスチャのデータ型(二次元方、 キューブ型)

変数コンストラクタ

float f = 1.0;
bool b = true;
int i = 0;
f = float(b);                    // boolをfloatに変換
f = float(i);                    // intをfloatに変換
b = bool(i);                     // floatをboolに変換
vec4 v4  = vec4(1.0);            // v4 = {1.0, 1.0, 1.0, 1.0};
vec3 v3  = vec3(1.0, 0.0, 0.5);  // v3 = {1.0, 0.0, 0.5};
vec3 tmp = vec3(v3);             // tmp = v3;
vec2 v2  = vec2(v3);             // v2 = {v2.x, v2.y};
v4       = vec4(v2, tmp, 0.0);   // v4 = {v2.x, v2.y, tmp.x, 0.0};
mat3 m3  = mat3(1.0, 0.0, 0.0,   // 最初の列
                0.0, 1.0, 0.0,   // 2番目の列
                0.0, 0.0, 1.0);  // 3番目の列
 

ベクトルと行列の成分

ベクトル成分の入れ替えサンプル
vec3 v3 = vec3(0.0, 1.0, 2.0);
vec3 tmp;
tmp = v3.xyz;           // tmp = {0.0, 1.0, 2.0};
tmp = v3.xxx;           // tmp = {0.0, 0.0, 0.0};
tmp = v3.zyx;           // tmp = {2.0, 1.0, 0.0};
 
行列アクセスのサンプル
mat4 m4    = mat4(1.0); // 対角要素を1.0(単位行列)に初期化
vec4 col0  = m4[0];     // 行列からベクトルを取得
float m1_1 = m4[1][1];  // 行列の1行1列の要素を取得
float m2_2 = m4[2][2];  // 行列の2行2列の要素を取得
 

定数

const宣言のサンプル
const float zero = 0.0;
const float pi = 3.14159;
const vec4 red = vec4(1.0, 0.0, 0.0, 1.0);
const mat4 identity = mat4(1.0);
 

構造体

ユーザー型coordStruct、変数名coordVarの構造体宣言のサンプル
struct coordStruct
{
    vec4 color;
    float start;
    float end;
}coordVar;
coordVar = coordStruct(vec4(0.0, 1.0, 0.0, 0.0),  // color
                       0.5,                       // start
                       2.0);                      // end
 

配列

float fArray[4];
vec4 vArray[2];
 

演算子

スカラー、ベクトル、行列演算の例
float f;
vec4 v4;
mat4 m4;
v4 = v4 * f;     // v4の各成分にスカラーfを乗算
v4 = v4 * v4;    // v4の各成分を一緒に乗算
v4 = m4 * v4;    // m4 * v4 の行列とベクトルを乗算
m4 = m4 * m4;    // m4 * m4 の行列と行列を乗算
 
利用可能な演算子の一覧
演算子の種類 説明
* 乗算
/ 除算
+ 加算
- 減算
++ インクリメント(前置、後置)
-- デクリメント(前置、後置)
= 代入
+=, -=, *=, /= 算術代入
==, !=, <, >, <=, >= 比較演算子
&& 理論積
^^ 排他的理論和
|| 包括的理論和

関数

GLSL記述言語の修飾子
修飾子 説明
in パラメーターが値で渡され、関数で変更されない事を示す(デフォルト値)
inout 変数が参照で関数に渡され、その値が変更される場合は、関数終了後に行われる事を示す
out 変数の値は関数に渡されず、関数から戻るときに変更される事を示す
パラメーター修飾子の例
vec4 func(inout float floatValue,  // inoutパラメータ
          out vec4 vectorValue,    // outパラメータ
          mat4 matrixValiue);      // inパラメータ(デフォルト値)
vec4 func(vec3 aNormal, vec3 light, vec4 baseColor) // 拡散光の計算式
{
    return baseColor * dot(normal, light);
}
 

組み込み関数

float nDotL = dot(normal, light);
float rDotL = dot(viewDir, (2.0*normal) * nDotL - light);
float specular = specularColor * pow(rDotV, speclarPower);
 
Angle & Trigonometry Functions [8.1]
Component-wise operation. Parameters specified as angle are
assumed to be in units of radians. T is float, vec2, vec3, vec4
T radians(T degrees) degrees to radians
T degrees(T radians) radians to degrees
T sin(T angle) sine
T cos(T angle) cosine
T tan(T angle) tangent
T asin(T x) arc sine
T acos(T x) arc cosine
T atan(T y, T x) arc tangent
T atan(T y_over_x) arc tangent
T sinh(T x) hyperbolic sine
T cosh(T x) hyperbolic cosine
T tanh(T x) hyperbolic tangent
T asinh(T x) hyperbolic sine
T acosh(T x) hyperbolic cosine
T atanh(T x) hyperbolic tangen

Qualifier変数タイプ

uniform ・アプリケーションからシェーダーに引き渡す変数
・読み込み専用
・名前空間が頂点シェーダとフラグメントシェーダの両方にまたがる。
・ビルトインのuniform変数は、sampler2D, samplerCubeなど。
attribute ・頂点属性から読み込んだ値が設定される変数
・シェーダー内では読み込み専用の定数として扱われる
・gl_Vertex(位置)、gl_Normal(法線)、テクスチャ座標、色などのデータを格納
・描画される頂点ごとに指定されるデータ
・ユーザ独自の頂点ごとに変化するデータを用意し、シェーダに渡すことが可能
・バーテックスシェーダでのみ利用可能
varying ・バーテックスシェーダからフラグメントシェーダに引き渡す変数
・varyingと定義された変数の値は、フラグメントシェーダーの同名の変数に自動的に設定される
・varying変数の定義はバーテックスシェーダとフラグメントシェーダの両方で行う
「GLSLの基礎」をウィキ内検索
LINE
シェア
Tweet
OpenGL ES 2.0 / GLSL 1.0
記事メニュー

OpenGL ES 2.0 Reference

  • OpenGL ES 2.0 API
  • OpenGL ES Command Syntax
  • Buffer Objects
  • Viewport and Clipping
  • Reading Pixels
  • Texturing
  • Errors
  • GL Data Types
  • Vertices
  • Rasterization
  • Pixel Rectangles
  • Shaders and Programs
  • Per-Fragment Operations
  • Whole Framebuffer Operations
  • Special Functions
  • State and State Requests
  • Whole Framebuffer Operations
  • Framebuffer Objects

GLSL 1.0 Reference

  • OpenGL ES Shading Language 1.0
  • Types
  • Operators and Expressions
  • Preprocessor
  • Qualifiers
  • Aggregate Operations and Constructors
  • Built-In Inputs, Outputs, and Constants
  • Built-In Functions
  • Statements and Structure
  • Sample Program

Reference

  • GLSLの基礎
  • Qualifier変数タイプ
  • 変数と変数型
  • 変数コンストラクタ
  • ベクトルと行列の成分
  • 定数
  • 構造体
  • 配列
  • 演算子
  • 関数
  • 組み込み関数
  • 精度修飾子

Cookbook

  • Blur Fragment Shader

Resources

  • kronos

atwiki Link

  • Home
  • Guide
記事メニュー2

History

取得中です。

[Edit]
人気記事ランキング
  1. GLSLの基礎
もっと見る
最近更新されたページ
  • 5222日前

    GLSLの基礎
  • 5222日前

    Qualifier Type
  • 5223日前

    Blur Fragment Shader
  • 5223日前

    TOP
  • 5223日前

    精度修飾子
  • 5223日前

    Types
  • 5223日前

    Framebuffer Objects
  • 5223日前

    State and State Requests
  • 5223日前

    Special Functions
  • 5223日前

    Whole Framebuffer Operations
もっと見る
人気記事ランキング
  1. GLSLの基礎
もっと見る
最近更新されたページ
  • 5222日前

    GLSLの基礎
  • 5222日前

    Qualifier Type
  • 5223日前

    Blur Fragment Shader
  • 5223日前

    TOP
  • 5223日前

    精度修飾子
  • 5223日前

    Types
  • 5223日前

    Framebuffer Objects
  • 5223日前

    State and State Requests
  • 5223日前

    Special Functions
  • 5223日前

    Whole Framebuffer Operations
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. R.E.P.O. 日本語解説Wiki
  2. VCR GTA3まとめウィキ
  3. ドタバタ王子くん攻略サイト
  4. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. STAR WARS ジェダイ:サバイバー攻略 @ ウィキ
  7. アサシンクリードシャドウズ@ ウィキ
  8. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  9. SYNDUALITY Echo of Ada 攻略 ウィキ
  10. ドラゴンボール Sparking! ZERO 攻略Wiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. oblivion xbox360 Wiki
  5. 初音ミク Wiki
  6. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  9. SDガンダム ジージェネレーションクロスレイズ 攻略Wiki
  10. ときめきメモリアル大辞典
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. フェルシー・ロロ - アニヲタWiki(仮)
  3. 揚げバター - アニヲタWiki(仮)
  4. anbrella(餡ブレラ) - ストグラ まとめ @ウィキ
  5. ロスサントス警察 - ストグラ まとめ @ウィキ
  6. RqteL - ストグラ まとめ @ウィキ
  7. ヴィルシーナ(ウマ娘 プリティーダービー) - アニヲタWiki(仮)
  8. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  9. BJローン - ストグラ まとめ @ウィキ
  10. NO LIMIT - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.