タグ

DirectXと3dに関するedo_m18のブックマーク (26)

  • ウマイハナシ

    COLLADAは最近出てきた3Dフォーマットの一つで、有名メーカが協賛している点は 数あるフォーマットの中でも変り種なのですが、野村XXの愛するLightWaveは蚊帳の外です。 というかNewtekの掲示板の書き込みを見ると、なんかどーでもいいよそんなのって雰囲気が漂ってました。 それはともかく、無いものは作ってしまえというわけでPluginを作り始めました。 あまりにもニッチな気がするので、国内に見切りをつけて(?)海外の皆さん向けにこっちのページで公開します。 興味をもたれた方は覗いてやってください。 技術的にどーというもんでもないので、黙々とコードを書き連ねるのみです。 ちょっと困ったバグがあるので修正記事をお待ち下さい(04/12/27) 今回はOBBTreeによる衝突判定をXファイルで使ってみることにします。 といっても、もはや前回でコアの部分は出来てしまっているので、さくっと

  • [GDC 2018]西川善司の3DGE:DirectX RaytracingにRTX,Optix,ProRenderにRadeon Rays。“レイトレだらけ”の状況をすっきりさせてみる

    [GDC 2018]西川善司の3DGE:DirectX RaytracingにRTX,Optix,ProRenderにRadeon Rays。“レイトレだらけ”の状況をすっきりさせてみる ライター:西川善司 GDC 2018における3Dグラフィックス技術関連で最大のトピックがレイトレーシングであることに疑いの余地はない。そのうち,MicrosoftがDirectX 12にレイトレーシングパイプラインを統合した「DirectX Raytracing」(以下,DXR)と,実際にそれを「Northlight」エンジンに組み込んだRemedy Entertainmentの事例はすでにお伝え済みだ(関連記事,関連記事2)。 Remedy Entertainmentは早くも自社のゲームエンジンにDXRを統合し,その技術デモを披露した RTXベースのレイトレーシング結果サンプル画像 ここで注意したいのは

    [GDC 2018]西川善司の3DGE:DirectX RaytracingにRTX,Optix,ProRenderにRadeon Rays。“レイトレだらけ”の状況をすっきりさせてみる
  • Unity - Manual: Debugging shaders using Visual Studio

    You can use Visual Studio to debug shadersA program that runs on the GPU. More info See in Glossary in a Unity application on Windows platforms using DirectX 11 or 12. This page contains information on how to do this. Note: If you are using DirectX 12, Microsoft recommends that you use PIX to debug shaders instead of Visual Studio. For information on using PIX on Windows with Unity, see Debugging

    Unity - Manual: Debugging shaders using Visual Studio
  • その70 完全ホワイトボックスなパースペクティブ射影変換行列

    ホーム < ゲームつくろー! < DirectX技術編 その70 完全ホワイトボックスなパースペクティブ射影変換行列 「今更何を?」という題目ではあります(^-^;。パースペクティブ射影変換行列は3Dを描画する時に間違いなく使用する行列の一つです。DirectX9の場合はD3DXMatrixPerspectiveFovLH関数を使うと自動的にそういう行列を作ってくれます。でも、な~んとなくふわふわっとした感じで使っていませんか?また、中身の数字とか式の形を見るも「ん~、まぁ何かやっているんだろうなぁ」と受け流してしまっていませんか?ワールド変換行列よりも実は良く分からずに使ってしまう事が多いこの行列。これって…ブラックボックスで不安な要素でもあります。 そこで章では、パースペクティブ射影変換行列を丸裸にしてしまいます。似たような事はマルペケのあちこちに散らばっているのですが、ここにぎゅー

    その70 完全ホワイトボックスなパースペクティブ射影変換行列
    edo_m18
    edo_m18 2017/05/20
    すばらしい解説
  • その55 そもそも「w」って何なのか?

    ホーム < ゲームつくろー! < DirectX技術編 その55 そもそも「w」って何なのか? ローカル座標にある頂点は(x,y,z,w)という4次元のベクトルで定義されます。「w」・・・これ、謎な存在です。しかも、ローカル座標にある状態では、w=1とします。w=1・・・なぜ?どうして0じゃないの?そもそもコレ何?何に使われているの?どうして必要なの?謎な存在の疑問は尽きません。 そこで、この章ではそんな不思議な存在wの値の意義について調べてみたいと思います。 ① wの変化の旅を見てみよう wが実際にどう作用しているのか、実際にローカルから画面に描画されるまでのプロセスで確かめてみるとよ~~くわかります。長い旅に出発です。 まず、ローカル座標にある頂点は、冒頭で出てきたように(x,y,z,w=1)で定義されます。今、この頂点にワールド変換行列を掛け算してみます: 行列中の「m」というのはス

    edo_m18
    edo_m18 2016/04/07
    うぉーこれだ! プロジェクション行列の各要素の意味知りたかった。
  • ゲームつくろ~質問箱 [One Topic All View / Re[4]: 球体にそった移動 / Page: 0]

    はじめまして、sayuと申します。 今制作しているゲームで、球体にそった移動をさせようとしています。 イメージとしては地球と人間のような関係です。 (3Dです。) 前後左右の移動入力に対し、現在位置からその方向へ移動させたいと思っています。 『その16 オブジェクトを任意の平面に立たせる姿勢制御』と、 掲示板での『クォータニオンでの姿勢』を参考に色々と試したのですが うまくいきませんでした。 そこで、一旦0から考え直そうと思っています。 何か良い方法がありましたら教えて頂けないでしょうか。 よろしくお願いします。 sayuさん、ご質問頂きましてありがとうございます。 返信が遅れまして申し訳ありません。 平面ではなくて球面上でキャラクタを移動させるには少し特別な考え方をする必要があります。 平面の場合、キャラクタが立つ時の足がかりとなる「重力」はワールドのY軸の逆方向になります。球体の場合、

  • エフェクト作成入門講座 Effekseer編 UVスクロールを使ったマグマエフェクトの作成 - ICS MEDIA

    2015年7月15日にバージョン1.0が公開され、同日開催された第1回ゲームエフェクト勉強会(株式会社さくらソフト主催。参加者108名)でも話題になった、エフェクトツール「Effekseer」(エフェクシアー)を使ったエフェクトの作成方法を紹介します。普段エフェクト作成やゲーム開発をしない方も、記事をきっかけにエフェクト作成に興味をもってもらえたら嬉しいです。 今回使うエフェクトツール「Effekseer」 Effekseerは簡単に綺麗なビジュアルエフェクトを制作できるツールです。 Effekseerはゲーム向けの爆発やヒットエフェクトなど様々なエフェクトを制作できるフリーでオープンソースなツールです。 制作したエフェクトは2Dのアニメーションとして出力したり、3Dのエフェクトとしてゲームに組み込んで再生できます。 ランタイムを組み込むことでDirectXやOpenGLを用いたC++

    エフェクト作成入門講座 Effekseer編 UVスクロールを使ったマグマエフェクトの作成 - ICS MEDIA
    edo_m18
    edo_m18 2015/08/22
    このテクニックいいな。
  • その58 やっぱり欲しい回転行列⇔クォータニオン相互変換

    算出されるyzwの符号に注目です。真のxの符号が+の時は正しく出ていますが、真のxの符号が-の場合は符号が反転しています。しかし、実はこれは問題ないんです。というのは「回転クォータニオンのQと-Qは同じ回転になる」という性質があるためです。時計の回転する長針を正面から見るか裏から見るかの違いでして、同じ回転であるのに違いありません。つまり、4*|x|さえ分かれば良いんです。そして、それはもう先の式で計算してあるではないですか(^-^)v。±の符号の「+」を採用して4*|x|を作ればいいだけです。 ここまでの情報があれば「よしゃー、変換はこれでできたぜ!」と思いたくなります。しかし、実は落とし穴がありまして、もう少し考慮が必要になります。右辺を4*|x|で割る時、xが0である可能性があるんです。例えば回転軸nが(0,1,0)とすると、|x|はあっさりと0になってしまいます。この場合、4*|x

  • [t-pot] PROGRAMMING

    Super Incorrect Translation "The Direct3D 10 System" (2006 Aug. 2)

  • その61 完全ホワイトボックスなスキンメッシュアニメーションの解説

    ホーム < ゲームつくろー! < DirectX技術編 その61 完全ホワイトボックスなスキンメッシュアニメーションの解説 スキンメッシュアニメーションは3Dのゲームの一つの大きな壁であり、一つの憧れ(?)でもあるかなと思います。かつてマルペケでもDirectX技術編その23辺りからDirectXが用意しているスキンメッシュアニメーションの解説を行いました。当時は良く分からない状態からスタートしましたので、解説もまぁ…分かったようなわからないような内容になっております(^-^;。 一通り実装して思ったのは「DirectX9が用意するスキンメッシュの仕組みを使うと質がわからなくなる!」という事でした。D3DXLoadMeshHierarchyFromX関数を使ってXファイルを読み込むと、D3DXFRAME構造体とID3DXAnimationControllerが何故か出来ていて、アニメーシ

  • [CEDEC 2013]なぜPixarのCG制作手法はゲームグラフィックスと違うのか? 「OpenSubdiv」セッションレポート(前編) - 4Gamer.net

    [CEDEC 2013]なぜPixarのCG制作手法はゲームグラフィックスと違うのか? 「OpenSubdiv」セッションレポート(前編) ライター:西川善司 手島孝人氏(Pixar Animation Studio,Studio Tools Department,Software Engineer) 1年ほど前の「SIGGRAPH 2012」で,Pixarが発表したオープンソースプロジェクト「OpenSubdiv」を,日語で解説するセッション「OpenSubdiv: オープンソースの RenderMan 完全互換 GPU対応サブディビジョンサーフェスライブラリ」が,「CEDEC 2013」2日めに開かれた。 セッションを担当したのは,「グランツーリスモ」シリーズのポリフォニーデジタルから,2年ほど前にPixar Animation Studio(以下,Pixar)に移籍したという経歴を

    [CEDEC 2013]なぜPixarのCG制作手法はゲームグラフィックスと違うのか? 「OpenSubdiv」セッションレポート(前編) - 4Gamer.net
  • SCEがオープンソースのレベルエディターを公開、将来の即戦力を育成か | Game*Spark - 国内・海外ゲーム情報サイト

    Sony Computer EntertainmentはApache License 2.0の下に無償で利用できるオープンソースのレベルエディターをGitHubにて公開しました。レベルエディターは今年3月に同じくオープンソースで公開されたツールフレームワーク「Authoring Tools Framework」で構築されており、C#によるWYSIWYGインターフェースやデータ管理、DirectX 11による3Dレンダリング、複数人による同時使用への対応などを特色としています。 ユーザーが任意のゲームエンジン用のレベルを効率的に設計できるSCEのレベルエディター。ベースとなるAuthoring Tools FrameworkはNaughty Dogの『The Last of Us』、Guerrilla Gameの『Killzone: Shadow Fall』など、ビッグタイトルの開発にも利

    SCEがオープンソースのレベルエディターを公開、将来の即戦力を育成か | Game*Spark - 国内・海外ゲーム情報サイト
  • その5 0から学ぶ法線マップ

    ホーム < ゲームつくろー! < プログラマブルシェーダ編 シェーダ編 その5 0から学ぶ法線マップ ポリゴンの表面にはテクスチャが貼られる。これは3Dのゲームを作ろうと思う方はもちろんどなたでもご存知の事です。貼るという語意から、テクスチャには色が付いているんだろうなともイメージできます。しかし、DirectXの中では「色」というのは単なる数字です。特にシェーダの中に入ると、それは0.0~1.0の小数点になってしまいます。 テクスチャは何とも便利な物で、ポリゴン表面のある部分の色を示す事ができます。テクスチャの色は結局数値なのですから、これを別のもっと一般化すると「テクスチャはポリゴン表面のある部分の『値』を示す事ができる」となります。 ポリゴン表面の性質にも色々とありますが、色味以外の代表格と言うと「法線」です。ポリゴンの向きですね。これまで、法線は頂点単位でしか定義されませんでした。

  • プログラマブルシェーダー編

    ホーム < ゲームつくろー! < プログラマブルシェーダ編 プログラマブルシェーダ編 プログラマブルシェーダーというのはDirectX8から使われるようになった、頂点情報やピクセル描画方法をプログラマが独自にカスタマイズできる技術です。昨今の素晴らしいエフェクトや画面効果の殆どはプログラマブルシェーダーを用いて作られており、今や必須の技術となってきています。とは言うものの、何だか良くわからない。「しぇーだーって何」というのも心だったりします。そこで節では、プログラマブルシェーダーについてじっくりと検討していきたいと思います。

  • その48 マウスカーソルで地面を指す

    ホーム < ゲームつくろー! < DirectX技術編 その48 スクリーン座標でワールド空間の地面を指す マウスカーソルを用いる3DのRPGなどでは、カーソルで当たり前のように宝箱を指すことができます。でも良く考えてみると不思議です。マウスカーソルの座標は2次元のスクリーン座標(クライアント座標)です。それに対して宝箱は3次元のワールド空間座標にあります。座標系がぜんぜん違うのに遠近感も考慮して正しく指す事ができる。裏ではいったい何をしているのでしょうか?秘密はスクリーン座標からワールド座標を求めると言う、通常とは逆方向の変換にあります。 この章では、スクリーン座標をワールド座標に変換する方法について見ていき、スクリーンに映っている床をワールド座標レベルで指し示す方法について検討してみましょう。 ① 決め手は「逆行列」 ワールド座標に点Pがあったとします。その点を何らかの行列Mによって移

  • その47 カメラのようにキャラクタを向かせたい!

    ホーム < ゲームつくろー! < DirectX技術編 その47 カメラのようにキャラクタを向かせたい! Direct3DXの関数の中にD3DXMatrixLookAtLH関数があります。これはカメラに関係する関数で、カメラの位置とカメラが見つめたい位置からビュー行列を作成してくれます。大変便利です。 この「位置」と「視点」という考え方は、キャラクタの向きを変える方法論として大変重宝しますが、D3DXMatrixLookAtLH関数を直接使う事はできません。それはD3DXMatrixLookAtLH関数が「原点にいるZ軸方向を向くカメラの前にオブジェクトを移動させる」という「俺様」な行列を作ってしまうためです。 ここではD3DXMatrixLookAtLH関数の考え方を流用して、キャラクタがちゃんとある点に向く関数を作成してみましょう。D3DXMatrixLookAtLH関数を何となく使っ

  • その39 知っていると便利?ワールド変換行列から情報を抜き出そう

    ホーム < ゲームつくろー! < DirectX技術編 < 知っていると便利?ワールド変換行列から情報を抜き出そう その39 知っていると便利?ワールド変換行列から情報を抜き出そう 今回はちょっと息抜きです。ワールド変換行列(座標変換行列)は3Dゲームで多分一番よく使う行列だと思います。この行列は回転、スケール、オフセットの3要素から作成します。では、すでに作成されたワールド変換行列からそれらの要素は抜き出す事ができるのでしょうか?またワールド変換行列には具体的にどのような情報が詰め込まれているのでしょうか?この章では、そのようなワールド変換行列から抜き出す事ができる情報について整理してみます。 ① ワールド変換行列の作り方 今更なのですが、ワールド変換行列の基についてまとめておきます。ワールド変換行列は回転、スケール、オフセットの3要素を表す行列の掛け算で作成するのが一般的です。各行列

    edo_m18
    edo_m18 2013/04/28
    ローカル座標のXYZ軸の算出はためになった。
  • ゲームプログラマーを目指すひと これで "2次元と3次元の世界を行き来" できるぞ!

    【リンク】 ◆解説系TOP◆ 今日は、2次元と3次元の座標の相互変換についてのお話です。 ※別の次元(2←―→3)へ座標を変換する方法を紹介します。 別に、自分がアニメの世界に入り込んだり、アニメのキャラクターが現実の世界に出てくる、 という様な意味ではありませぬ。 では、まずコレをご覧下さい。 【参考画像】 メタセコイアです。 メタセコイアでは、普通にカーソルでモデルの表面を選択する事が出来るんですが、 (写ってないですが、黄色くなっている部分がカーソルで指されています) よく考えたら、謎ですね。 x軸とy軸しかないウィンドウ(2次元の世界)から、 x、y、z軸の3次元の世界を選択できています。 一体どうやっているのか? 今日は、この謎の部分を解説します。 (まぁ、先に結論を言ってしまうと、行列で2次元と3次元の座標を変換してます。) では、下記の様な順で書いていこうかな、と。 ----

  • その27 アニメーションの根っこ:スキンメッシュアニメーション(ボーン操作)

    ホーム < ゲームつくろー! < DirectX技術編 < アニメーションの根っこ:スキンメッシュアニメーション(ボーン操作) その27 アニメーションの根っこ:スキンメッシュアニメーション(ボーン操作) RPGで主人公が走り、飛び、勝利のポーズを決める。かっこいいですよねぇ~。そういう軟質系の動きは「スキンメッシュアニメーション」と呼ばれています。これをDirect3Dで実現するために、その23あたりから地道な下積みをしてきています。この章では、いよいよアニメーションの根をなす「ボーン操作」について説明します。この章、はっきり言って試行錯誤と調査と努力の結晶です(T_T) ① ボーン登場! ○×にもちらちらと出てくる「ボーン(骨)」。スキンメッシュアニメーションの中核をなす重要な概念でして、ようやくここで堂々の登場となります。ボーンとはスキンメッシュに埋め込まれた骨のことで、この骨をぐ

  • 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ファイル