ゲーム職人.com

[ページビュー=シンプルなカウンター素材と無料レンタルカウンターの「pitacount」 + 46349] [このサイトについて] [ネタ][sourceforge.jp]
ゲーム職人.comへようこそ!このページは &o 君のゲームにプログラムについて考えたこと、技術ネタ、日々の日記がかいてあるページです。

2004-12-26 風邪引いた

glsl green cube

とりあえず、右のバーからのライブラリのドキュメントに対するリンクが切れていたので、修正。

[]ライブラリメモ書き

OpenGL系のライブラリを忘れるので、よく使うやつをメモ。

  • glu32.lib
  • opengl32.lib
  • winmm.lib
  • glut32.lib

[]ATIのサンプルで見た for の再定義

かなり懐かしいです。

#define for if(0);else for

詳しくは、ここでも見てください。

http://icp.hicorp.co.jp/letter/p_mame_c20605.html

[][][]SDL で GLSL

とりあえず imagire さんの

http://imagire.zive.net/t-pot/program/104_GLSL/

を元に、SDL で glsl を使ってみましょう。とりあえず、SDL についている gl のサンプルをベースにしました。

いろいろいじってみたところ、

#include "SDL_opengl.h"

とすると、いろいろ拡張を導入してくれるようです。ただ、これだとうまく行きませんでした。結局 glew ( http://glew.sourceforge.net/ )という gl 拡張を簡単に使うためのライブラリを持ってくることにしました。まずは、

#include "gl/glew.h"
#pragma comment( lib, "glew32.lib" )

で、glew を持ってきます。次に、

#define NO_SDL_GLEXT
#include "SDL_opengl.h"

とし、SDL_opengl.h の拡張定義を切ります。

後は、glew の初期化と imagire さんのサンプルを切ったり張ったりしたのが、

http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/gslib/GSLib/SandBox/SDL/sdl.cpp

です。SDL のサンプルに追加したコードは、全てインデント0で「適当」に貼り付けています。単に glsl が利用できていることのみを調べるため、頂点シェーダーは、

void main(void)
{
    gl_Position = ftransform();
}

のみ、フラグメントシェーダーは、

void main(void)
{
    gl_FragColor = vec4( 0, 1, 0, 0 );
}

のみとしました。ですので、添付画像のように、単に緑色の立方体が回っているだけです。

このサイトは、http://www.game-syokunin.com/が正式なURLです。お手数をおかけしますが、リンクしていただくときは、よろしければ、こちらを使ってください。