ゲームグラフィックス特論
クラス | 名前空間 | 型定義 | 列挙型 | 関数 | 変数
gg.h ファイル

ゲームグラフィックス特論の宿題用補助プログラム GLFW3 版の宣言. [詳解]

被依存関係図:

[ソースコード]

クラス

class  gg::GgMatrix
 変換行列. [詳解]
 
class  gg::GgQuaternion
 四元数. [詳解]
 
class  gg::GgTrackball
 簡易トラックボール処理. [詳解]
 
class  gg::GgTexture
 テクスチャ. [詳解]
 
class  gg::GgColorTexture
 カラーマップ. [詳解]
 
class  gg::GgNormalTexture
 法線マップ. [詳解]
 
class  gg::GgBuffer< T >
 バッファオブジェクト. [詳解]
 
class  gg::GgUniformBuffer< T >
 ユニフォームバッファオブジェクト. [詳解]
 
class  gg::GgShape
 形状データの基底クラス. [詳解]
 
class  gg::GgPoints
 点. [詳解]
 
struct  gg::GgVertex
 三角形の頂点データ. [詳解]
 
class  gg::GgTriangles
 三角形で表した形状データ (Arrays 形式). [詳解]
 
class  gg::GgElements
 三角形で表した形状データ (Elements 形式). [詳解]
 
class  gg::GgShader
 シェーダの基底クラス. [詳解]
 
class  gg::GgPointShader
 点のシェーダ. [詳解]
 
class  gg::GgSimpleShader
 三角形に単純な陰影付けを行うシェーダ. [詳解]
 
struct  gg::GgSimpleShader::Light
 三角形に単純な陰影付けを行うシェーダが参照する光源データ. [詳解]
 
class  gg::GgSimpleShader::LightBuffer
 三角形に単純な陰影付けを行うシェーダが参照する光源データのユニフォームバッファオブジェクト. [詳解]
 
struct  gg::GgSimpleShader::Material
 三角形に単純な陰影付けを行うシェーダが参照する材質データ. [詳解]
 
class  gg::GgSimpleShader::MaterialBuffer
 三角形に単純な陰影付けを行うシェーダが参照する材質データのユニフォームバッファオブジェクト. [詳解]
 
class  gg::GgSimpleObj
 Wavefront OBJ 形式のファイル (Arrays 形式). [詳解]
 

名前空間

 gg
 ゲームグラフィックス特論の宿題用補助プログラムの名前空間
 

型定義

using gg::GgVector = std::array< GLfloat, 4 >
 4 要素の単精度実数の配列. [詳解]
 

列挙型

enum  gg::BindingPoints { gg::LightBindingPoint = 0 , gg::MaterialBindingPoint }
 光源と材質の uniform buffer object の結合ポイント. [詳解]
 

関数

void gg::ggInit ()
 ゲームグラフィックス特論の都合にもとづく初期化を行う. [詳解]
 
void gg::_ggError (const char *name=nullptr, unsigned int line=0)
 OpenGL のエラーをチェックする. [詳解]
 
void gg::_ggFBOError (const char *name=nullptr, unsigned int line=0)
 FBO のエラーをチェックする. [詳解]
 
bool gg::ggSaveTga (const char *name, const void *buffer, unsigned int width, unsigned int height, unsigned int depth)
 配列の内容を TGA ファイルに保存する. [詳解]
 
bool gg::ggSaveColor (const char *name)
 カラーバッファの内容を TGA ファイルに保存する. [詳解]
 
bool gg::ggSaveDepth (const char *name)
 デプスバッファの内容を TGA ファイルに保存する. [詳解]
 
bool gg::ggReadImage (const char *name, std::vector< GLubyte > &image, GLsizei *pWidth, GLsizei *pHeight, GLenum *pFormat)
 TGA ファイル (8/16/24/32bit) をメモリに読み込む. [詳解]
 
GLuint gg::ggLoadTexture (const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_BGR, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE)
 テクスチャメモリを確保して画像データをテクスチャとして読み込む. [詳解]
 
GLuint gg::ggLoadImage (const char *name, GLsizei *pWidth=nullptr, GLsizei *pHeight=nullptr, GLenum internal=0, GLenum wrap=GL_CLAMP_TO_EDGE)
 テクスチャメモリを確保して TGA 画像ファイルを読み込む. [詳解]
 
void gg::ggCreateNormalMap (const GLubyte *hmap, GLsizei width, GLsizei height, GLenum format, GLfloat nz, GLenum internal, std::vector< GgVector > &nmap)
 グレースケール画像 (8bit) から法線マップのデータを作成する. [詳解]
 
GLuint gg::ggLoadHeight (const char *name, float nz, GLsizei *pWidth=nullptr, GLsizei *pHeight=nullptr, GLenum internal=GL_RGBA)
 テクスチャメモリを確保して TGA 画像ファイルを読み込み法線マップを作成する. [詳解]
 
GLuint gg::ggCreateShader (const char *vsrc, const char *fsrc=nullptr, const char *gsrc=nullptr, GLint nvarying=0, const char *const varyings[]=nullptr, const char *vtext="vertex shader", const char *ftext="fragment shader", const char *gtext="geometry shader")
 シェーダのソースプログラムの文字列を読み込んでプログラムオブジェクトを作成する. [詳解]
 
GLuint gg::ggLoadShader (const char *vert, const char *frag=nullptr, const char *geom=nullptr, GLint nvarying=0, const char *const varyings[]=nullptr)
 シェーダのソースファイルを読み込んでプログラムオブジェクトを作成する. [詳解]
 
GLuint gg::ggCreateComputeShader (const char *csrc, const char *ctext="compute shader")
 コンピュートシェーダのソースプログラムの文字列を読み込んでプログラムオブジェクトを作成する. [詳解]
 
GLuint gg::ggLoadComputeShader (const char *comp)
 コンピュートシェーダのソースファイルを読み込んでプログラムオブジェクトを作成する. [詳解]
 
GLfloat gg::ggLength3 (const GLfloat *a)
 3 要素の長さ. [詳解]
 
void gg::ggNormalize3 (GLfloat *a)
 3 要素の正規化. [詳解]
 
GLfloat gg::ggDot3 (const GLfloat *a, const GLfloat *b)
 3 要素の内積. [詳解]
 
void gg::ggCross (GLfloat *c, const GLfloat *a, const GLfloat *b)
 3 要素の外積. [詳解]
 
GLfloat gg::ggLength4 (const GLfloat *a)
 4 要素の長さ. [詳解]
 
GLfloat gg::ggLength4 (const GgVector &a)
 GgVector 型の長さ. [詳解]
 
void gg::ggNormalize4 (GLfloat *a)
 4 要素の正規化. [詳解]
 
void gg::ggNormalize4 (GgVector &a)
 GgVector 型の正規化. [詳解]
 
GLfloat gg::ggDot4 (const GLfloat *a, const GLfloat *b)
 4 要素の内積 [詳解]
 
GLfloat gg::ggDot4 (const GgVector &a, const GgVector &b)
 GgVector 型の内積 [詳解]
 
GgMatrix gg::ggIdentity ()
 単位行列を返す. [詳解]
 
GgMatrix gg::ggTranslate (GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
 平行移動の変換行列を返す. [詳解]
 
GgMatrix gg::ggTranslate (const GLfloat *t)
 平行移動の変換行列を返す. [詳解]
 
GgMatrix gg::ggTranslate (const GgVector &t)
 平行移動の変換行列を返す. [詳解]
 
GgMatrix gg::ggScale (GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
 拡大縮小の変換行列を返す. [詳解]
 
GgMatrix gg::ggScale (const GLfloat *s)
 拡大縮小の変換行列を返す. [詳解]
 
GgMatrix gg::ggScale (const GgVector &s)
 拡大縮小の変換行列を返す. [詳解]
 
GgMatrix gg::ggRotateX (GLfloat a)
 x 軸中心の回転の変換行列を返す. [詳解]
 
GgMatrix gg::ggRotateY (GLfloat a)
 y 軸中心の回転の変換行列を返す. [詳解]
 
GgMatrix gg::ggRotateZ (GLfloat a)
 z 軸中心の回転の変換行列を返す. [詳解]
 
GgMatrix gg::ggRotate (GLfloat x, GLfloat y, GLfloat z, GLfloat a)
 (x, y, z) 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す. [詳解]
 
GgMatrix gg::ggRotate (const GLfloat *r, GLfloat a)
 r 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す. [詳解]
 
GgMatrix gg::ggRotate (const GgVector &r, GLfloat a)
 r 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す. [詳解]
 
GgMatrix gg::ggRotate (const GLfloat *r)
 r 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す. [詳解]
 
GgMatrix gg::ggRotate (const GgVector &r)
 r 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す. [詳解]
 
GgMatrix gg::ggLookat (GLfloat ex, GLfloat ey, GLfloat ez, GLfloat tx, GLfloat ty, GLfloat tz, GLfloat ux, GLfloat uy, GLfloat uz)
 ビュー変換行列を返す. [詳解]
 
GgMatrix gg::ggLookat (const GLfloat *e, const GLfloat *t, const GLfloat *u)
 ビュー変換行列を返す. [詳解]
 
GgMatrix gg::ggLookat (const GgVector &e, const GgVector &t, const GgVector &u)
 ビュー変換行列を返す. [詳解]
 
GgMatrix gg::ggOrthogonal (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
 直交投影変換行列を返す. [詳解]
 
GgMatrix gg::ggFrustum (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
 透視透視投影変換行列を返す. [詳解]
 
GgMatrix gg::ggPerspective (GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar)
 画角を指定して透視投影変換行列を返す. [詳解]
 
GgMatrix gg::ggTranspose (const GgMatrix &m)
 転置行列を返す. [詳解]
 
GgMatrix gg::ggInvert (const GgMatrix &m)
 逆行列を返す. [詳解]
 
GgMatrix gg::ggNormal (const GgMatrix &m)
 法線変換行列を返す. [詳解]
 
GgQuaternion gg::ggQuaternion (GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 四元数を返す [詳解]
 
GgQuaternion gg::ggQuaternion (const GLfloat *a)
 四元数を返す [詳解]
 
GgQuaternion gg::ggIdentityQuaternion ()
 単位四元数を返す [詳解]
 
GgQuaternion gg::ggMatrixQuaternion (const GLfloat *a)
 回転の変換行列 m を表す四元数を返す. [詳解]
 
GgQuaternion gg::ggMatrixQuaternion (const GgMatrix &m)
 回転の変換行列 m を表す四元数を返す. [詳解]
 
GgMatrix gg::ggQuaternionMatrix (const GgQuaternion &q)
 四元数 q の回転の変換行列を返す. [詳解]
 
GgMatrix gg::ggQuaternionTransposeMatrix (const GgQuaternion &q)
 四元数 q の回転の転置した変換行列を返す. [詳解]
 
GgQuaternion gg::ggRotateQuaternion (GLfloat x, GLfloat y, GLfloat z, GLfloat a)
 (x, y, z) を軸として角度 a 回転する四元数を返す. [詳解]
 
GgQuaternion gg::ggRotateQuaternion (const GLfloat *v, GLfloat a)
 (v[0], v[1], v[2]) を軸として角度 a 回転する四元数を返す. [詳解]
 
GgQuaternion gg::ggRotateQuaternion (const GLfloat *v)
 (v[0], v[1], v[2]) を軸として角度 v[3] 回転する四元数を返す. [詳解]
 
GgQuaternion gg::ggEulerQuaternion (GLfloat heading, GLfloat pitch, GLfloat roll)
 オイラー角 (heading, pitch, roll) で与えられた回転を表す四元数を返す. [詳解]
 
GgQuaternion gg::ggEulerQuaternion (const GLfloat *e)
 オイラー角 (e[0], e[1], e[2]) で与えられた回転を表す四元数を返す. [詳解]
 
GgQuaternion gg::ggSlerp (const GLfloat *a, const GLfloat *b, GLfloat t)
 二つの四元数の球面線形補間の結果を返す. [詳解]
 
GgQuaternion gg::ggSlerp (const GgQuaternion &q, const GgQuaternion &r, GLfloat t)
 二つの四元数の球面線形補間の結果を返す. [詳解]
 
GgQuaternion gg::ggSlerp (const GgQuaternion &q, const GLfloat *a, GLfloat t)
 二つの四元数の球面線形補間の結果を返す. [詳解]
 
GgQuaternion gg::ggSlerp (const GLfloat *a, const GgQuaternion &q, GLfloat t)
 二つの四元数の球面線形補間の結果を返す. [詳解]
 
GLfloat gg::ggNorm (const GgQuaternion &q)
 四元数のノルムを返す. [詳解]
 
GgQuaternion gg::ggNormalize (const GgQuaternion &q)
 正規化した四元数を返す. [詳解]
 
GgQuaternion gg::ggConjugate (const GgQuaternion &q)
 共役四元数を返す. [詳解]
 
GgQuaternion gg::ggInvert (const GgQuaternion &q)
 四元数の逆元を求める. [詳解]
 
GgPoints * gg::ggPointsCube (GLsizei countv, GLfloat length=1.0f, GLfloat cx=0.0f, GLfloat cy=0.0f, GLfloat cz=0.0f)
 点群を立方体状に生成する. [詳解]
 
GgPoints * gg::ggPointsSphere (GLsizei countv, GLfloat radius=0.5f, GLfloat cx=0.0f, GLfloat cy=0.0f, GLfloat cz=0.0f)
 点群を球状に生成する. [詳解]
 
GgTriangles * gg::ggRectangle (GLfloat width=1.0f, GLfloat height=1.0f)
 矩形状に 2 枚の三角形を生成する. [詳解]
 
GgTriangles * gg::ggEllipse (GLfloat width=1.0f, GLfloat height=1.0f, GLuint slices=16)
 楕円状に三角形を生成する. [詳解]
 
GgTriangles * gg::ggArraysObj (const char *name, bool normalize=false)
 Wavefront OBJ ファイルを読み込む (Arrays 形式) [詳解]
 
GgElements * gg::ggElementsObj (const char *name, bool normalize=false)
 Wavefront OBJ ファイル を読み込む (Elements 形式). [詳解]
 
GgElements * gg::ggElementsMesh (GLuint slices, GLuint stacks, const GLfloat(*pos)[3], const GLfloat(*norm)[3]=nullptr)
 メッシュ形状を作成する (Elements 形式). [詳解]
 
GgElements * gg::ggElementsSphere (GLfloat radius=1.0f, int slices=16, int stacks=8)
 
bool gg::ggLoadSimpleObj (const char *name, std::vector< std::array< GLuint, 3 >> &group, std::vector< GgSimpleShader::Material > &material, std::vector< GgVertex > &vert, bool normalize=false)
 三角形分割された OBJ ファイルと MTL ファイルを読み込む (Arrays 形式) [詳解]
 
bool gg::ggLoadSimpleObj (const char *name, std::vector< std::array< GLuint, 3 >> &group, std::vector< GgSimpleShader::Material > &material, std::vector< GgVertex > &vert, std::vector< GLuint > &face, bool normalize=false)
 三角形分割された OBJ ファイルを読み込む (Elements 形式). [詳解]
 

変数

GLint gg::ggBufferAlignment
 使用している GPU のバッファオブジェクトのアライメント, 初期化に取得される. [詳解]
 

詳解

ゲームグラフィックス特論の宿題用補助プログラム GLFW3 版の宣言.

著者
Kohe Tokoi
日付
March 31, 2021

gg.h に定義があります。