SlideShare a Scribd company logo
1日で始めるGLSL




              2013/01/28
             大阪スタジオ
              江上龍太郎
GLSL
• C言語をベースにしたシェーディング言語




• 文字列を流し込んでコンパイル
お手軽環境
• GLUT

• freeglut

• GLFW
属性
• Uniform
 アプリケーション側から送る
 VertexShader・FragmentShaderの
 両方から読み出せる

• Const
 不変な値を設定する
属性
• Attribute
  アプリケーションから送る
  VertexShaderのみで読み出せる
              GLSL1.3から非推奨
• Varying
  VertexShaderとFlagmentShader間を繋ぐ
  FragmentShader側では値が補間される
GLSL1.3からの変更
• Attribute → in

• Varying
  VertexShader → out
  FragmentShader → in

• 入出力を表すように変更されました

• Attribute・Varyingを使用すると警告されます
組み込み変数
• gl_~から始まる用意されてる変数

• 各変数毎に属性が指定されていて、
       GLSL1.3の固定機能
  定義の手間が省ける
        排除で非推奨へ
• それぞれのシェーダで結果を格納するための
  変数も用意されている
GLSL1.3からの変更
• 結局ユーザが定義してシェーダ繋ぐ

• とりあえずin outで流し込んでおけば
  問題ない

• 結果を格納するにはinvariant・・・?
初シェーダ
• 3Dでガリガリ書く方に目が行きがち

• でも僕はフラグメントシェーダを使って、
  画像処理とか書くのをお勧めします
フラグメントシェーダ
• 簡単な処理で大きな効果を得られることが多い

• in(varying)による補間を実感しやすい

• フラグメントシェーダ重いことが理解できる
discard
• FragmentShaderにおいて、
  点を打たないことを命令するキーワード

• スマートフォンの機種によってはOS毎落ちてし
  まう
  魔法の命令
スマートフォンでは…
• GLSL-ESを使用する

• #ifdef GL_ESを使用して共通化することも可能

• GPU毎で差が大きく、共通化するのは困難な作
  業…
簡単に書ける環境
• GLSL Sandbox
  http://glsl.heroku.com/

• Web上でGLSLのコードの編集と実行が行える

• 眺めるだけでも参考になります
参考資料
• 床井研究室
  http://marina.sys.wakayama-u.ac.jp/~tokoi/

• HYPERでんち
  http://dench.flatlib.jp/
何かご質問などありましたらどうぞ!
ご清聴ありがとうございました。

More Related Content

PDF
Kotlin vs TypeScript
PPTX
BellAds Official Presentation - Customers
PPT
股票形态学
PDF
Netwerk bouwen nh2.0 bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
ODP
Highlights 2011
PDF
Flashをcocos2dxで再生
PDF
130228 kunnen corporaties nog investeren woonwaard - bouwen nh2.0
Kotlin vs TypeScript
BellAds Official Presentation - Customers
股票形态学
Netwerk bouwen nh2.0 bim - hoe doen anderen het - ooijevaar - bevlogen bouw...
Highlights 2011
Flashをcocos2dxで再生
130228 kunnen corporaties nog investeren woonwaard - bouwen nh2.0

Viewers also liked (14)

DOCX
Makalah salat
PPSX
Pallet Sock September 2013
PPT
SVN経験者のためのGIT入門
PPS
The Essential Part 108 Air Cargo Security Guide July 2012
PDF
vvvv と他言語の違い
PDF
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
PDF
A CGRA-based Approach for Accelerating Convolutional Neural Networks
PDF
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PDF
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PDF
GLSLによるシェーダーアートことはじめ
PDF
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
PDF
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PDF
ゲームエンジンとMVC
PDF
CTF超入門 (for 第12回セキュリティさくら)
Makalah salat
Pallet Sock September 2013
SVN経験者のためのGIT入門
The Essential Part 108 Air Cargo Security Guide July 2012
vvvv と他言語の違い
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A CGRA-based Approach for Accelerating Convolutional Neural Networks
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
GLSLによるシェーダーアートことはじめ
助教が吼える! 各界の若手研究者大集合「ハードウェアはやわらかい」
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
ゲームエンジンとMVC
CTF超入門 (for 第12回セキュリティさくら)
Ad

More from AimingStudy (10)

PDF
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
PDF
デザイナーがMELスクリプトを書いて工数削減した話
PDF
剣と魔法のログレス(PC版)の自慢と課題
PDF
Unityと.NET
PDF
3D描画基礎知識
PPTX
Node.jsではじめるサーバ構築
PPTX
AWSではじめるお手軽オンラインゲーム開発
PPTX
C++のビルド高速化について
PPTX
Adobe scoutの紹介
PDF
C++によるソート入門
Kick Off Technical Artist & ShaderFx - テクニカルアーティストと ShaderFXのお話
デザイナーがMELスクリプトを書いて工数削減した話
剣と魔法のログレス(PC版)の自慢と課題
Unityと.NET
3D描画基礎知識
Node.jsではじめるサーバ構築
AWSではじめるお手軽オンラインゲーム開発
C++のビルド高速化について
Adobe scoutの紹介
C++によるソート入門
Ad

1日で始めるglsl