[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

3Dに関するyou21979のブックマーク (25)

  • GitHub - recastnavigation/recastnavigation: Industry-standard navigation-mesh toolset for games

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - recastnavigation/recastnavigation: Industry-standard navigation-mesh toolset for games
    you21979
    you21979 2014/07/22
  • よく使うベクトル・行列計算関数_3DCG - FreeStyleWiki

    ベクトルの加減算や内積・外積・行列計算などはレンダラを作る場合には頻繁に使うため、扱いやすいように1ファイル(ソース)にまとめてしまうのが吉です。 たとえば、(x, y, z)の3つのfloat型を持つものは以下のように定義してしまいましょう。 (x, y, z)の要素を持つベクトル typedef struct VECTOR3 { public: float x, y, z; VECTOR3(){ }; VECTOR3(float x, float y, float z) { (this->x) = x; (this->y) = y; (this->z) = z; }; VECTOR3 operator + (const VECTOR3 dvec) const { VECTOR3 v3; v3.x = ((this)->x) + dvec.x; v3.y = ((this)->y) +

    you21979
    you21979 2014/07/22
  • DirectX技術編

    ホーム < ゲームつくろー! < DirectX9技術編 DirectX9技術編 Direct Graphics その1 初期化なんて怖くないぜ! 2013. 1. 11 改正 サンプルプログラム その2 座標変換済み頂点で2D板ポリゴンを描画 2006. 5. 15 加筆改正 サンプルプログラム その3 テクスチャ作成あれこれ 2005. 12. 3 改正 サンプルプログラム その4 もう悩まないテクスチャブレンディング 2005. 12. 3 改正 その5 高速フォント表示 2006. 5. 12 加筆改正 サンプルプログラム その6 板ポリゴンに写る3Dオブジェクト 2005. 12. 3 改正 その7 3Dオブジェクト描画のおさらい 2006. 7. 11 加筆改正 サンプルプログラム その8 キーフレームアニメーションで動きを制御 2005. 12. 3 改正 その9 Xファイル

    you21979
    you21979 2014/07/22
  • その60 変換行列A×BとB×Aの違いを知ろう

    ホーム < ゲームつくろー! < DirectX技術編 その60 変換行列A×BとB×Aの違いを知ろう 3Dのゲームを作る上で変換行列は欠かせません。ローカルにあるモデルを世界に置くにはワールド変換行列が必要です。ところで、そのワールド変換行列を作る過程で「行列の掛け算」が出現します。例えば回転行列Rと位置行列Tから「30度回転させて座標(10,20,30)にモデルを置くワールド変換行列」なるものを作るわけです。 では、「世界に置いた位置からさらにモデルの向いている方向に40だけ移動させるワールド変換行列」とか「親モデルから相対的に30度親の空間のZ軸で回転させる」などゲーム制作上必要となる複雑なワールド変換行列を作るにはどう考えてどう行列を掛け算をしていけば良いのでしょうか。この行列感覚はとてつもなく重要です。 章では色々な事例を検証しながら「変換行列を掛ける」という事をどう捉えるべき

    you21979
    you21979 2014/07/22
  • wgld.org | WebGL: 3D 描画の基礎知識 |

    二次元と三次元 三次元空間――それは、我々の生きているこの現実世界に他なりません。 三次元の世界では、全てのものに縦と横、そして奥行きが存在します。そしてそれを再現しようとするのが、リアルタイム 3D レンダリングですね。しかし、三次元空間を再現しようとするとき、それを出力する先は普通、二次元のモニター上です。 パソコンや、モバイル機器などのあらゆるデバイスは、二次元のモニター上に情報を出力します。少なくとも現代ではいまのところ、奥行きのある空間を物理的に実現するデバイスはありませんね。まぁ、研究所の分厚い扉の向こう側にはあるのかもしれませんが、一般家庭には普通そんなものはありません。 WebGL を使って擬似的に三次元空間をシミュレートしたとしても、最終的にはそれをモニターという二次元空間に出力しなくてはなりません。奥行きによる前後関係や、遠近法による伸縮拡大を加味して、どこになにがどん

  • なぜOpenGLを使うのか? - OpenGLプログラミングメモ

    OpenGLが右手座標系、DirectXが左手座標系を採用しているのは大きな明暗。 数学やほとんどの3Dアプリでは右手座標系を使用しています。 ODEやOpenALなども、そうです。つまり右手座標系が業界標準だったのです。 最近ではDirectXも左手座標系と右手座標系を選べるようになったのですが、 統一されていないのは混乱を招く種です。 また、OpenGLはプレイステーション1,2,3、iphoneアプリなどのSDKとして 採用されています。 言うまでもなく、豊富な各種ライブラリと過去の遺産を無駄にする事なく プログラミングするためです。 実行速度という点では、アセンブラに劣るでしょうが、VisualC++の場合、 MASMがインラインアセンブラで使えます。 GUIに関してはC#、VisualBasic、JAVA + Swingに、分があるように感じるかも しれませんが、.NET Fra

    なぜOpenGLを使うのか? - OpenGLプログラミングメモ
  • 3D描画基礎知識

    5. 描画開始 ● 描画に必要なデータ転送 – 頂点データ ● 座標/テクスチャUV/頂点色/などなど – テクスチャ – 姿勢行列(WVP Matrix) – アニメーション行列(Bone Matrix)(Joint Matrix) – その他シェーダに必要なパラメータ 7. 頂点データの構造 ● 頂点データの配列 – struct VERTEX { FLOAT x, y, z; // 座標 FLOAT rhw; // 頂点計算済みフラグ DWORD color; // 頂点色 FLOAT tu, tv; // テクスチャUV }; – シェーダによって必要なパラメータが違う ● 頂点インデックスの配列

    3D描画基礎知識
    you21979
    you21979 2014/07/22
  • 2012-01-06 - tuedaの日記

    you21979
    you21979 2014/07/22
  • 実践的な衝突判定(AABB編) - 結果だけでなく過程も見てください

    自作ゲームに組み込んでいる衝突判定について、整理も兼ねてご紹介します。 説明を簡単にするために2D空間で説明します。 バウンディングボリューム バウンディングボリュームについては、容易に判定可能で実用的ということで 各軸に平行な四角形(以下の図のようなの)を採用します。 このような四角形のことをAABB(axis-aligned bounding box)と言います。 AABBのデータ構造 色々考えられますが、 最小座標とそれぞれの辺の長さ 中心座標とそれぞれの辺の半分の長さ 最小座標と最大座標 ここでは1.を採用します。 データ構造は以下のようになります。 struct AABB { POINT min_; SIZE size_; }; 図にすると以下のようになります。 静止しているAABB同士の衝突判定 上の図でobj1とobj2が衝突する条件を文章で書くと以下のようになります。 ob

    実践的な衝突判定(AABB編) - 結果だけでなく過程も見てください
    you21979
    you21979 2014/07/22
  • 3D衝突判定(当たり判定)

    3D空間におけるオブジェクト同士の衝突判定(当たり判定)を行うためのサンプルコードを紹介します。 OBB とは何ぞや? OBB に対する点の再接近点 OBB 対球の衝突判定 OBB 対線分の衝突判定 OBB 対 OBB の衝突判定 3D空間におけるOBBとの衝突判定には、衝突していない要素を見つければよいそうです。その判定方法に分離軸判定というものがありますが、正直に言うとあまり理解していません。 どうやって実装したのかと言えば、「ゲームプログラミングのためのリアルタイム衝突判定」というに C 言語のサンプルが載っていたので、それを DirectX 用に変更しました。 ですので、詳細な理論はそちらのに譲りまして、ここでは DirectX で実装可能なコードサンプルの提供と、説明が不足していると思われる部分について補足的に説明を加えることをしたいと思います。 ここでは OBB がなんであ

    you21979
    you21979 2014/07/22
  • いかにしてサーバーはモンスターを歩かせるのか? 『ファイナルファンタジーXIV: 新生エオルゼア』の経路探索テクニック【SQEXオープンカンファレンス2012】 - ファミ通.com

    いかにしてサーバーはモンスターを歩かせるのか? 『ファイナルファンタジーXIV: 新生エオルゼア』の経路探索テクニック【SQEXオープンカンファレンス2012】 2012年11月23日と24日、スクウェア・エニックスが東京都のベルサール神田で公開技術カンファレンス“スクウェア・エニックスオープンカンファレンス2012”を開催した。 その中から稿では、横山貴規氏とFabien Gravot氏による“サーバーサイド経路探索システム”についての講演の内容をお届けする。 講演で扱われたのは、『ファイナルファンタジーXIV: 新生エオルゼア』のモンスターやNPCの経路探索システム“HiNT(Hierarchical Neighborhood lookup Table)”について。 あるキャラクターがA地点からB地点へと移動していく場合、2点間を結んだ直線を歩けるとは限らない。当然マップ上には通れ

    いかにしてサーバーはモンスターを歩かせるのか? 『ファイナルファンタジーXIV: 新生エオルゼア』の経路探索テクニック【SQEXオープンカンファレンス2012】 - ファミ通.com
    you21979
    you21979 2014/06/18
  • ここから始める、3Dプリンタ&モデリング基礎知識

    you21979
    you21979 2013/11/16
  • 3Dプログラミング勉強会をやりました - ✘╹◡╹✘

    ( Hatsune Miku / Crypton Future Media inc. / CC BY-NC ) 週末、3Dプログラミングに興味のある自称初心者が7人集まって勉強会をした。皆適当にピザべたりして語らないながら各自作業を進めて、終わって琉球料理べて成果報告とか最近のプログラミング界隈の話とかをした。MikuMikuDanceをブラウザで動かす奴を作ろうと思って、MMDのモデルデータの歴史・仕様を調べ、PMD形式とその後継のPMX形式があること、PMDは仕様の詳細が公にされていないがPMXはPMX仕様.txtに少し書いてあること、PMXファイルはバイナリデータであること、ブラウザでバイナリデータを読み込むにはArrayBufferやDataViewが使えることなどを勉強した。PMXのデータ構造をBNFで記述してそれを元にコードを自動生成しようとしたのだけど、規則が色々複雑で、

  • 四元数(クォータニオン)でモデルを回転

    四元数(クォータニオン)でトーラスを回転 なかなかGLSLのサンプルに到達できないのですが、GLSLの前に、モデルをグリグリ動かすことはやっておいた方がいいと思い、四元数(クォータニオン)でモデルを回転するサンプルを作成しました。クォータニオンについては、ネット上にいろいろ解説がでており、私はそれよりもきちんと説明できる自信はないのですが、簡単に紹介します。 クォータニオンは、一つの実数部と三つの虚数部(みたいなもの)i, j, kから成る数で、次のように表記します。 ここで、i2 = j2 = k2 = ijk = -1 が成り立ちます。3次元の座標(x, y, z)は、クォータニオンを使用して次のように表現します。 また、任意軸 (ax, ay, az) 回りのθ回転は、次のように表すことができます。 この時、3次元座標pの任意軸回りの回転qは、次のような計算が成り立ちます。 ここで、

    you21979
    you21979 2013/02/27
  • scalarvector

    you21979
    you21979 2013/02/27
  • Sylvester

    Sylvester is a vector, matrix and geometry library for JavaScript, that runs in the browser and on the server side. It includes classes for modelling vectors and matrices in any number of dimensions, and for modelling infinite lines and planes in 3-dimensional space. It lets you write object-oriented easy-to-read code that mirrors the maths it represents. For example, it lets you multiply vectors

  • 3D計算で使えるVector3DとMatrix3D_Flex - FreeStyleWiki

    3DCGでは、ベクトルと行列の扱いが必須になります。Flex3で追加されたVector3DとMatrix3Dを使うことで、そのベクトルと行列計算を行うことができます。 「Vector3D」型は、(x, y, z, w)の要素を持ちます。 var v:Vector3D; v = new Vector3D(); とすると、(v.x, v.y, v.z, v.w)にそれぞれアクセスできます。 w要素は使わないのでしたらメモリの無駄になりますので、Vectorを使って var v:Vector.<Number>; v = new Vector.<Number>(3 * 頂点数, true); v[0] = 1.0; // X要素に相当 v[1] = 2.2; // Y要素に相当 v[2] = 3.1; // Z要素に相当 として扱うほうが節約できそうです(特に何千という頂点を一括管理するような場合

    you21979
    you21979 2012/12/23
  • OpenGLはDirectX 11を超え,OpenGL ESは据え置き型ゲーム機と同等以上に。Khronosの最新動向レポート

    OpenGLはDirectX 11を超え,OpenGL ESは据え置き型ゲーム機と同等以上に。Khronosの最新動向レポート ライター:西川善司 Neil Trevett氏(President, Khronos Group)。氏はNVIDIAのMobile Content部門副社長でもある OpenGLやOpenCLなど,さまざまなオープンAPI規格を司るKhronos Group(クロノスグループ,以下 Khronos)は,2012年8月のSIGGRAPH 2012に合わせて,2つの大きな発表を行っている。 1つは,PCおよびワークステーション向けのグラフィックスAPIである「OpenGL」の新バージョン「OpenGL 4.3」だ。そしてもう1つは,組み込み向けのグラフィックスAPIである「OpenGL ES」の新バージョン「OpenGL ES 3.0」である。 筆者は,SIGGRAP

    OpenGLはDirectX 11を超え,OpenGL ESは据え置き型ゲーム機と同等以上に。Khronosの最新動向レポート
  • Flashゲーム講座&ASサンプル集【クォータニオン(4元数)の関数を作ろう】

    var quat = { x : 0, // 虚数 y : 0, // 虚数 z : 0, // 虚数 w : 1 // 実数 };

    you21979
    you21979 2012/10/11
  • 長文日記

    you21979
    you21979 2012/10/11