タグ

ポリゴンに関するedo_m18のブックマーク (9)

  • Bounding Volume Hierarchy (BVH) の実装 - 交差判定編 - Qiita

    この記事はレイトレ合宿2アドベントカレンダーの五週目の記事です。 そして Bounding Volume Hierarchy (BVH) の実装 - 構築編 の続きにもなります。 構築編を書いたのが去年の12月なので、ゆうに半年以上経ってようやく記事が完成する形に… 構築編の続きとなるので、構築編を読んでおられない方は構築編からどうぞ。 BVH を使わない場合の交差判定 早速タイトルと違うことを言っていますが、まずは全てのポリゴンに総当たりしてチェックする方法を確認しておきましょう。 これに関してはコードを示してしまったほうがおそらくわかりやすいです。 int Intersect(const Vector<Triangle *> &polygons, const Ray ray) { for (int i=0; i<polygons.size(); i++) { Triangle *pol

    Bounding Volume Hierarchy (BVH) の実装 - 交差判定編 - Qiita
  • 【Unity】Particle SystemにLODを適応してみる - テラシュールブログ

    何となく思いついて、LODをパーティクルに適応したところ、出来てしまいました。何の役に立つのかと思ってみましたが、これが思いの外有効そうです。 例えば複数の演出で成り立っているパーティクルの場合、距離に応じて演出を追加していくのもアリかもしれません。 下の場合、LOD0は7個のパーティクルから成り立っていますが、LOD1は4個、LOD2は2個のパーティクルまで削減しています。 他のもいくつか使いみちがありそうですが、同時に機能しないどころかパフォーマンスを悪化させるケースもあります。 今回はソレについて紹介します。 目次 LODとパーティクル Particle SystemにLODを設定してみる で、パフォーマンスは? 描画負荷は削減される パーティクル自体のパフォーマンスはprocedural modeなら効率化 LODよりCullingGroupの方が良いかもしれない 感想 関連 LO

    【Unity】Particle SystemにLODを適応してみる - テラシュールブログ
  • その71 深度バッファの精度って?

    ホーム < ゲームつくろー! < DirectX技術編 その71 深度バッファの精度って? ポリゴンの前後関係を判断する「深度(Depth)」を格納するバッファである「深度バッファ(Depth buffer)」。このバッファは通常目にする事も触る事も出来ませんが、そこに書き込まれている深度がZテストで比較される事で3Dのモデルに「前後の関係」が与えられるため極めて重要です。 深度バッファでしばし問題になるのがその前後を判定する精度です。所詮デジタルな数値ですから無限に細かい精度で前後判定は出来ません。ポリゴンが殆ど密着しているような状態(キャラクタが着ている衣服やGUIの重ね合わせなど)の場合、当は離れているはずなのに、精度不足から双方のポリゴンの深度が「同じ」と判定され、描画が激しくちらついてしまう事があります。いわゆる「Zファイト」と呼ばれるアーティファクトです。これを避けるには、密

    その71 深度バッファの精度って?
  • Bounding Volume Hierarchy (BVH) の実装 - 構築編 - Qiita

    2016/04/04追記 ここで挙げているコードを参考にする際は、以下の点に注意してください(八田さん、Pocolさん、西山さん、qさんフィードバックありがとうございます) ※コピペしてコンパイルするとコンパイルエラー出ます。ちゃんと確認していないですがstlのメソッド名が間違っているようです ※SAHによるソートが遅いです。ソートに関してはPBRTに書かれているようなので参考にしてください(std::partitionを使うらしいです) ※SHAの計算は定義にバカ正直に当てはめていますが、値の比較しかしないのでいくつかの計算が省略できます ※上記の点についての修正は、気が向いたらやります。やらないかもしれません。 この Qiita というサービスが流行っているようなので、はてダのかわりに試しに投稿してみます。 と思ったのですが、アップロード可能な画像が月間2MBとちょっと辛いので、または

    Bounding Volume Hierarchy (BVH) の実装 - 構築編 - Qiita
  • Unity でオブジェクトスペースのレイマーチをやってみた - 凹みTips

    はじめに 以前、Unity の Command Buffer を使ってレイマーチを行う方法を紹介しました。 Unity で Command Buffer を使って Raymarching をしてみた - 凹みTips しかしながらこの手法では異なる多数の立体を同時に描画したり、それらのオブジェクトを自由に操作したりするには計算コストが高く難しいです。そこで id:i-saint さんがオブジェクトスペースにおいてレイマーチを行うことでこれを軽減する手法を提案されていました。 object space raymarching - primitive: blog エントリでは、提案されたいた手法を前回のエントリに続く形として実装してみましたので、具体的にどんなことが行われているか差分の形で紹介したいと思います。 デモ 角丸立方体の格子で出来たキューブと球のモーフィングです。トランスフォームを

    Unity でオブジェクトスペースのレイマーチをやってみた - 凹みTips
  • なぜテクスチャサイズは2の累乗なのか

    作ってて普通に192x192のテクスチャでいい感じだったんで 別にそんな必要ねーじゃんとか思ってたんですが、 いろいろやってて、なんとなく理由が分かって来ました。 1.ポリゴンのテクスチャは明示するまで同じテクスチャを使う これびっくりしました。3Dってのは、テクスチャをポリゴンに指定して、 後はそのポリゴンをごちゃごちゃいじるんだと思ってたので。 Direct3Dはそうではなく、テクスチャステージってのがあって、 そこにテクスチャと描写方法を指定して、全ポリゴンがそれを使うって処理なんですよ。 2.1.の理由によりテクスチャを使いまわす必要がある 毎フレームごとにテクスチャ変えてちゃしんどいでしょうね。 まあポリゴンに色(含透明度)と位置を指定できるんで、 大体は使いまわせそうではあります。 3.2.の位置指定がfloatである これ。これが問題。浮動小数点です。(0.0~1.0で指定)

    なぜテクスチャサイズは2の累乗なのか
  • 【Unity】LOD(Level of Detail-距離に応じたハイポリ/ローポリの切替)をキャラクターで使用する方法 - テラシュールブログ

    Level of Detailをキャラクター・・・と言うかアニメーションを持つキャラクターに対して使用する方法についてです。 LOD(Level of Detail) キャラクターとLOD 一つのAnimatorでLOD やり方 関連 LOD(Level of Detail) Level of Detailは距離に応じて描画するモデルのポリゴン数を制御する機能です。近距離のモデルはハイポリ、遠距離のモデルはローポリで表現することで、オブジェクトの描画負荷を低減します。 例えば下の画像は左が通常ポリゴン、右がリダレクション*1を行ったモデルです。近くで見ると右は歪んでいますが、遠距離で見ると左のポリゴン密度が高すぎる点が気になります。 今までの自分の認識ではポリゴン数が問題になる事はそこまで無かったのですが、PBRを綺麗に見せようとすると超ハイポリによる表現が必要な点や、表情を綺麗に変形させ

    【Unity】LOD(Level of Detail-距離に応じたハイポリ/ローポリの切替)をキャラクターで使用する方法 - テラシュールブログ
  • GPU本来の性能を引き出すWebGL頂点データ作成法 - Qiita

    この記事はWebGL Advent Calendar 2015の9日目の記事です。 ご注意 記事は2015年当時に書いた記事なのですが、GPUがGeForce 8x00シリーズ以降、SIMDからSIMTという並列実行形式に切り替わった頃から状況が大きく変わりました。 以前は記事でも紹介するインターリーブ形式の頂点データの方が高速だったのですが、現在のGPUでは多くの環境で非インターリーブの方が高速とされています。 AMD GPUにおいても、GCNアーキテクチャ(PS4以降の世代)から(それまでのVLIWから)SIMTに切り替わり、非インターリーブを推奨されているようです。 WebGLは基的にネイティブ3D APIへのマッピングに過ぎないため、この傾向はおそらくWebGLでも同様と考えられます。 とはいえ、インターリーブ(AoS)や非インターリーブ(SoA)はCGをやる上でいずれ避けて

    GPU本来の性能を引き出すWebGL頂点データ作成法 - Qiita
    edo_m18
    edo_m18 2015/12/09
    この記事めっちゃありがたい! ふんわりとした理解だったものがだいぶしっかりした!
  • Simplygonでポリゴン数とかマテリアル削減 - テラシュールブログ

    最近Simplygonなるメッシュ削減サービスがUnityに対応したらしい。 SimplygonはLOD(※1)と呼ばれるモデルを作成、ゲームを再生する上で重要なポリゴン数やボーン数を削減し、パフォーマンスを上手い感じに維持するサービスだ。 一見同じに見えるがポリゴン数が大幅削減されてるこのサービス自体は既にコンソールゲームにも利用されているらしく、実績一覧を見るとACVの姿が確認出来る。 実績一覧にACVの画像が ※1:LOD(Level of Detail)とは視点に近く大きく表示されるモデルはハイポリで、視点から遠く小さく描かれがちなものについてはポリゴン数の少ない3Dモデルに切り換える技術。 このサービス、インディー向けに機能制限版を無料で使用できるらしい。 実際に使ってみた。まずAssetStoreよりSimplygonをインポートし、 メニュー>Window>Simpolygo

    Simplygonでポリゴン数とかマテリアル削減 - テラシュールブログ
  • 1