I am Charmie

メモとログ

OpenGL

freeglut for OpenGL (GLSL) + Visual Studio 2010 on 64bit

freeglutを使ってVisual Studio 2010でのOpenGL(GLSL)環境のセットアップを試みる.同じ内容で書いたことがあるけど,freeglutが2.6.0から2.8.0にバージョンアップされてセットアップが容易になっていたのでメモ. 以下で{VC Root}は 32bit C:\Program Files…

OpenGL (GLSL) + Visual Studio 2010 on 64bit

Visual Studio 2010 + OpenGL(GLSL)のセットアップ. 以下で{VC Root}は 32bit C:\Program Files\Microsoft Visual Studio 10\VC 64bit C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A を表すものとする. GLUTのインストール GLUT(OpenGL Utility To…

OpenGL: 光源の設定

光源を利用する.2つの処理が必要.光源そのものに環境光,拡散光,鏡面光があって,それぞれ設定するというのは,何か違和感を感じるなぁ.光源の設定光源を有効にする: glEnable(GL_LIGHTING)をコールする.その後,glEnable(GL_LIGHT$i$)として,i番目の…

OpenGL: ダブルバッファリング

画面全体を一度に描画すると,表示がちらつく事があるらしい(レンダリングの速度が追いつかないから?).ダブル・バッファリングによって画面を2つにわけて,片方を表示している間にもう片方を描画して入れ換える・・・という作業を続けると,ちらつきがなくなる…

OpenGL: アニメーション

"GLでアニメーションをさせる=display関数を複数回呼ぶ"という事らしい.glutMainLoop関数は無限ループだけど,glutDisplayFunc関数はウィンドウを再描画するイベントが発生した時しかコールされないそうだ.そこで,アニメーションのようにdisplay関数を連…

OpenGL: Z buffer

複数の物体を描画する時,(カメラから見た時の)物体の前後関係を考慮する必要がある.初期化 glutInitDisplayMode()にGLUT_DEPTHを追加する描画時glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);...glEnable(GL_DEPTH_TEST);

OpenGL: 立体の描画

2つの処理に分かれている.オブジェクトの設定3次元空間内での位置や,オブジェクトの挙動(色,光の反射,etc.)などを設定する.視点の設定3次元空間を2次元の画像としてレンダリングするために,カメラに関する設定をする.ビューポート: window内で画像を…

OpenGL: window作成

OpenGLでwindowsを作成する.4つの処理に分かれている. glutの初期化glutInit関数をコールする. windowの設定glutCreateWindow関数をコールする. コールバック関数の設定glutDisplayFunc関数をglutDisplayFunc(display)のようにコールする.※ display関数…

OpenGL for Visual Studio 2010

Visual Studio 2010 + OpenGLのセットアップ.1. GLUTのインストールGLUT(OpenGL Utility Toolkit)はOpenGLでプログラムを書くためのツールキット.オリジナルのglutの開発は2001年ぐらいから進んでいなさそうなので,代わりにfreeglutをインストールする.1…

05_texture_sampling_program

今回は,04で使用しなかったtextureについて.バーテックスシェーダは前回と同じで,フラグメントシェーダが変わっている.ひとまずC3E3f_texture.cgを載せる. struct C3E3f_Output { float4 color : COLOR; }; C3E3f_Output C3E3f_texture(float2 texCoord…

04_varying_parameter_program

今回は,varying parameterとやらの話.C2E1v_green,C3E1v_anyColorどちらのシェーダプログラムでも,バーテックス毎に異なるパラメータがあった.セマンティック変数のPOSITIONの事.これは,GPUが各position parameterを,プログラムによって処理されるバ…

03_uniform_parameter_program

今回は,uniform parameterとやらの話.C2E1v_greenは,バーテックスのカラーとして,常に緑色を返していた.異なる色を変えさせたい時にどうすれば良いかと言うと,パラメータとしてカラーを与えてあげればOK.今回のバーテックスシェーダ(C3E1v_anyColor)…

02_vertex_and_fragment_program

今回は,バーテックスシェーダとフラグメントシェーダの両方を使う(バーテックスシェーダは前回と同じもの).GLの方で行う処理の変更点は,01_vertex_programと違い,フラグメントシェーダの設定も行う必要があるぐらい.フラグメントシェーダ(C2E2f_passthr…

01_vertex_program pt.2

次に,シェーダでどんな事をしているか.今回のシェーダ(C2E1v_green.cg)は処理が単純過ぎるので,一般的な話から.Cg言語では,OpenGL側から受け取るデータは全て関数の引数として受け取る必要がある.関数が受け取る引数には2種類あって,ユニフォーム変数…

01_vertex_program pt.1

Cgをインストールする時に一緒に保存されるサンプルプログラムで,Cgの勉強.まずは,Cgを使う時のルールみたいなのを,最初のサンプルファイル(01_vertex_program)を参考にまとめてみる.このプログラムはバーテックスシェーダのみしか使用してないけど,そ…

Cgとは?

Cgとは?そもそもCgって何をするのかとか,そーゆー話をまとめようと思う.サンプルコードやwebで調べた上での自分なりの解釈だから,間違ってたらゴメンなさい.Cgはグラフィックスハードウェアを使ってレンダリングするオブジェクトのshape, appearance, m…

Cg Tutorial Examples

Cgの勉強を本格的にしなきゃという事で, Cg turorialのページに行くと, Cg Tutorial Examples Installerなるものを見つけた.後でインストールしてみる.

Cgチュートリアル

Cgのチュートリアルがオンラインで読める。http://http.developer.nvidia.com/CgTutorial/cg_tutorial_frontmatter.htmlサンプルコードの説明は2章から始まるので、とりあえずそれを読み始める。

Cg

installdownload Cg Tool Kit from the following URL, and then install it.http://developer.nvidia.com/object/cg_download.htmlif you have not installed DirectX SDK, installation package recommends you to install it.2. path settingInclude file…

GLの設定

Windows 7 + Visual Studio 2008でGLの設定1. glutインストール以下のサイトから glut-3.7.6-bin.zip をダウンロードhttp://www.xmission.com/~nate/glut.html以下の3つのファイルをそれぞれコピー。glut32.dll -> C:\WINDOWS\System32glut32.lib -> C:\Prog…