タグ

openglに関するthorikawaのブックマーク (15)

  • OpenGL Projection Matrix

    Related Topics: OpenGL Transformation, OpenGL Matrix Overview Perspective Projection Orthographic Projection Updates: The MathML version is available here. Overview A computer monitor is a 2D surface. A 3D scene rendered by OpenGL must be projected onto the computer screen as a 2D image. GL_PROJECTION matrix is used for this projection transformation. First, it transforms all vertex data from the

  • OpenGLの座標系

    座標系の理解なくして3DCGなし OpenGLを用いて3次元CGを描く場合、特にシェーダを自分で書く場合は、 座標系の理解が必須である。 OpenGLではレンダリングパイプラインの進行に伴って 様々な座標系が登場する。 オブジェクト座標系 (object coordinate system) オブジェクト座標系はモデリングの際に対象物の頂点座標や 法線を指定するための座標系である。 原点は対象物のバウンディングボックスの一頂点か、 対象物重心付近に置かれることが多い。 対象物の形状を捉えやすい方向に x, y, z 軸が設定される。 例えば、花瓶の形状をモデリングするためには、 花瓶の底面中央を原点にし、鉛直上向きを z 軸正方向とする オブジェクト座標系を設定するのが都合よい。 オブジェクト座標系はモデリング座標系(modeling coordinate system) あるいはローカル

  • modelview matrix を理解する

    OpenGL の行列表現に関する基礎的な知識 OpenGL では、4x4 行列を 16 要素の1次元配列として扱う: GLfloat m[ 16 ]; 要素の並びは以下のようになる: m[ 0 ] m[ 4 ] m[ 8 ] m[ 12 ] m[ 1 ] m[ 5 ] m[ 9 ] m[ 13 ] m[ 2 ] m[ 6 ] m[ 10 ] m[ 14 ] m[ 3 ] m[ 7 ] m[ 11 ] m[ 15 ] glMultMatrixf( m ) は現在の行列に対して右からの乗算を行う。 現在の行列を得るには glGetFloatv() を用いる: glGetFloatv( GL_MODELVIEW_MATRIX, m ); modelview matrix とは ある点のオブジェクト座標系における座標値を、 カメラ座標系における座標値へと変換する際に、 オブジェクト座標系における座

  • HugeDomains.com

  • Game Programming Wiki - GPWiki

    Welcome Welcome to The Game Programming Wiki! Here you will find game programming tutorials and source code for a variety of languages and platforms. Also, because this is a wiki, you are encouraged to contribute your knowledge and help the repository grow! If you're lost or confused, please try the help page, or else drop on by the forums and ask for clarification there. Introduction What is game

  • NeHe Productions

    by gregsidelnikov, posted at May 7, 2017, 6:02 p.m. Actually, this post is not about how I made MK7 in OpenGL, but what the results were. I am currently porting it to WebGL as well. The level design geometry is so simple, that it might work in 4K. But we'll see. Go to this link to arrive at WebGL tutorial site, which is now home for the Mario Kart engine demo. The entire level was designed in Blen

  • openGLで基本立体を線画しよう

    openGLの基礎 openGLとは openGLは3Dグラフィックス用のプログラムライブラリで、3次元のモデルを構成して表示(レンダリング)することができます。 openGLの基礎 座標系 openGLの座標系はY軸を上、X軸を横、z軸を手前とします。移動や回転操作はこの座標系を操作します。z軸(奥行き)を無視すると、通常のx,y軸の画面になります。 変換行列 二つの変換行列 openGLではモデルを眺める方向や視角度等から定まる射影変換とモデルの座標軸を回転、移動するモデル変換から構成されます。モデル変換はモデルを置く座標軸を定め、射影変換は、モデルを2次元図形(影絵)に変換する方法を決定します。 二つの変換行列は、モードを切り替えて設定します。これらの行列はopnGL()関数の呼び出しで自動的に設定されます。 glMatrixMode(GL_PROJECTION)

  • GLUT で OpenGL 3D プ ログラミング GLUT で OpenGL 3D プログラミング - 2 – Copyright (C) 2009 Hiromu Itoh. All Rights Reserved. はじめに 【推奨環境】 このレポート上に書かれている URL はクリックできます。��

    GLUT で OpenGL 3D プ ログラミング GLUT で OpenGL 3D プログラミング - 2 – Copyright (C) 2009 Hiromu Itoh. All Rights Reserved. はじめに 【推奨環境】 このレポート上に書かれている URL はクリックできます。できない場合は最 新の AdobeReader をダウンロードしてください。(無料) http://www.adobe.co.jp/products/acrobat/readstep2.html 【著作権について】 このレポートは著作権法で保護されている著作物です。 下記の点にご注意戴きご利用下さい。 このレポートの著作権は作成者に属します。 著作権者の許可なく、このレポートの全部又は一部をいかなる手段におい ても複製、転載、流用、転売等することを禁じます。 このレポートの開封をもって下記の

  • http://www-sens.sys.es.osaka-u.ac.jp/users/shinsaku/lec/compra07/text3.pdf

  • 床井研究室 - 第18回 テクスチャオブジェクト

    独立したテクスチャが使いたい テクスチャが1枚しかなくても,テクスチャを分割して使うことで,異なる場所や物体に異なるテクスチャを貼り付けることができます.それでも,やはり独立したテクスチャが使えたほうが何かと便利です.たとえばキューブマッピングはテクスチャに使う画像の全体を使用しますから,その一部を切り分けて他に流用するようなことができません.この場合は独立したテクスチャが必要になります. OpenGL において独立した複数のテクスチャを取り扱う機能のことを,テクスチャオブジェクトと呼びます.複数のテクスチャメモリを動的に割り当てたり開放したりする機能のほか,テクスチャに優先度を与えて処理速度を最適化する機能も用意されています. 部屋の中にティーポットを置いてみる それでは,通常のテクスチャマッピングにキューブマッピングを組み合わせてみましょう.まず,前回作ったプログラムを雛形にして,箱の

    床井研究室 - 第18回 テクスチャオブジェクト
  • 平行移動・回転・拡大縮小 - 人工知能に関する断創録

    ティーポットのような3次元オブジェクトを平行移動、回転、拡大縮小する方法です。平行移動、回転、拡大縮小は3次元オブジェクトの頂点座標を変換することで実現できるのでモデリング変換とかアフィン変換と呼ばれます。数学的には頂点の座標にある行列をかけることで実現しますが、OpenGLを使うだけなら詳細は知らなくても大丈夫です。 rotate.py translate.py scale.py サンプルスクリプト #!/usr/bin/env python #coding:utf-8 from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * import sys angle = 0.0 def main(): glutInit(sys.argv) glutInitDisplayMode(GLUT_RGB | G

    平行移動・回転・拡大縮小 - 人工知能に関する断創録
  • OpenGL勉強会用 資料のページ

    同次変換の利用と3次元 Last update: <2004/03/13 17:31:20 +0900> 行列計算の基礎 同次座標行列とは 同次座標行列の逐次変換 同次座標変換例 演習 自習 行列計算の基礎 オブジェクトの位置や姿勢を3次元的に定義するためには行列が便利です. OpenGLではオブジェクトの移動や回転で行列の概念を利用しています.OpenGLをVRに用いる場合には,視点やオブジェクトの座標変換が不可欠であるといってよいでしょう. ここでは行列の計算とOpenGLの関わりについて説明します*9. OpenGLでは右手系の空間座標系を利用していることは前回に述べた通りです.空間座標系とは(x,y,z)の3次元で張られた座標系です.この空間座標系に物体を描画したり,動作させたりするわけですが,最も基準となる座標系のことをワールド座標系と呼びます. 物体(オブジェクト)を配置する最

    thorikawa
    thorikawa 2012/07/01
    分かりやすい同次座標と座標変換の説明
  • sonson@Picture&Software - [OpenGL] 射影変換

    概念 Viewing,ここで説明することは投視変換とViewport処理です.ちょっとややこしく感じるかもしれませんが,知っておくと細かくOpenGLを処理することが可能です. 射影変換とViewportの概念は下のようになります. 簡単に説明すると,プログラム上では,3次元上でものを書き,それをカメラで写し(射影変換),それをウィンドウに貼り付ける(Viewport変換),といった手続きになります. これらの処理は描画コードが実行されるまでに処理しておきます.当然,初期化時以外にも変更することは可能です. これらの一連の処理は知らなくても大体のプログラミングは可能ですが,どこかで必要になります. それでは説明していきます. 射影変換 簡単には2種類の射影変換が存在します. 正射影 この射影変換にすると,遠くのものも近くのものも同じ大きさになります.この方法では完全に遠近感が

  • 高速OpenGL講座

    3次元図形を描く 前回の授業で、基的なことはほとんどできました。今回はいよいよ3次元の物体を描き、それらを描く上でちょっとしたコツを習得しましょう。 -- menu ---------------------------------- 1.準備 2.プログラムの説明 3.隠面消去 -------課題その1 4.階層構造 -------課題その2 ---------------------------------------------- 1.準備 サンプルプログラムをここからダウンロードして下さい。ダウンロードしたファイルは「はじめに」のページのやり方に従って解凍し、保存して下さい。 ファイルの内容は次のようになっています。 ogl2.cpp box.cpp ogl2.dsw ogl2.dsp glut.h glut32.lib glut32.dll

  • 高速OpenGL講座

    void display(void) { //--上の部分は省略(線・円を描くを参照)-- glColor3f(1.0,1.0,1.0); glBegin(GL_POLYGON); glVertex2f(-0.5f, 0.5f); glVertex2f( 0.5f, 0.5f); glVertex2f( 0.5f,-0.5f); glVertex2f(-0.5f,-0.5f); glEnd(); } glColor3f();ではこれから描く頂点の色を設定しています。 括弧内の値は左から赤、緑、青の強さで、それぞれ0.0〜1.0の値をとります。ここでは全ての値が1ですので、色は白になります。 glVertex2f();は頂点を設定していて、括弧内の数字は点の座標です。 この場合、4つの点が定義されています。 そして、これらをどのようにしてつないでいくかというのがglBegin();の括弧内の

  • 1