Site admin: fujis PukiWiki 1.5.4 © 2001-2022 PukiWiki Development Team. Powered by PHP 8.1.27. HTML convert time: 0.007 sec.
はじめにこんにちは!3DCGの再勉強中のなたでです! 今まで、次の変換行列の違いをみてきました。 DirectXとOpenGLのビュートランスフォーム行列の違いDirectXとOpenGLの射影トランスフォーム行列の違い本日は変換の最後のビューポート行列の違いを調べてみましょう。ビューポート変換とは、正規化デバイス座標系から、スクリーン座標系への変換となります。前回の講義から、右手座標系・左手座標系という話はなくなっているので、ビューポート行列はDirectX と OpenGL とで同じだと思いますが、どうなんでしょう。 関連記事3DCGの座標系の紹介DirectXとOpenGLの回転行列、回転軸、回転方向DirectXとOpenGLのビューポート行列の定義DirectXのビューポートの設定D3DVIEWPORT9構造体でビューポートの定義をして、SetViewportで設定できるようです
はじめに はじめまして、ドリコムでエンジニアをやっているイシカワと申します。 普段はネイティブアプリケーション向けに共通ライブラリの開発を担当していて、最近はUnity開発にも関わっています。 今年からUnityを日常的に使うようになり、これまで敷居が高かった3Dアプリ開発が自分にとってぐっと身近な存在になりました。 エディタを起動すれば、すぐさま開発に集中できる環境を用意できます。ゲーム開発の民主化、万歳。 しかし、カッコイイ視覚表現を追求しようといざグラフィックスまわりのコードを書き始めると、そこにはマルチプラットフォーム対応によって生まれた落とし穴が潜んでいます。 この記事では、3Dプログラミングの基礎である「座標変換」において、Unity開発者がつまずきやすい問題を紹介します。 数ヶ月前の自分をふりかえり「こんなまとめ記事が欲しかった・・・」という視点で書いてみました。 テーマの都
次世代仕様のWebGPUとは? 次期macOSでのOpenGL非推奨化は WebGLに影響をもたらすのか ウェブの3Dグラフィックスを扱う新しい仕様として、WebGPUが提案されています。広く普及したWebGLがある中で、WebGPUとはどういった目的で生まれようとしているのでしょうか? 本記事ではWebGLとWebGPUの違いと、近況を紹介します。 業界を震撼させたAppleのOpenGL非推奨化 今月6月上旬に開催されたWWDC 18で発表されたmacOS 10.14 MojaveとiOS 12のウェブページでは、OpenGL/OpenCLおよびOpenGL ESを非推奨化する旨が記載されています。macOS 10.14とiOS 12でOpenGL等は引き続き動作するものの、Metalへの置き換えを呼びかけています。 ▲What’s New in macOSにはOpenGLとOpenC
カメラ座標に投影行列を施して得られる座標系である。 クリッピング座標の原点はカメラ位置。 変換後のクリッピング座標系では同次座標を用いた視体積内外の 判定が容易になるように射影行列を決定する。 クリップ座標はまだ、ユークリッド座標じゃなくて同次座標です クリッピング座標ではクリッピングが行われる。 どんな風にして行われるかというと、wより大きか小さいかで行われるのだ。 クリッピングは同次座標 w を用いて (1) という条件で行われる この条件を満たない頂点は捨てられる。 条件に満たない頂点を捨てた後、 クリッピング範囲にぴったり沿うように新しい辺を作る。 透視投影の場合 錐台の形をしていたクリッピング範囲は、±1の範囲の立方体に変形する。 カメラ座標系は右手座標系だけど、 正規化デバイス座標では左手座標系になってることに注意。 ちなみに、OpenGLでは普段は右手座標系だ。 原点にあるカ
バージョンアップ 自宅の iMac の OS を Snow Leopard にしました.OS をバージョンアップをすると定常状態に落ち着くまでしばらくかかるんですけど, 今回は更新前と全然変わりなく安定して動いています. いやぁ起動も速いし Firefox もサクサク動くし, Canvas X も Rosetta で一応動きます (日本語の入力ができないけど). あと, このブログを動かしていたマシン (Celeron 1.4GHz, 箱は10年物!) も, 元 M 君マシン (Athlon XP 3200+) に置き換えました. だいぶ軽くなりました. こいつの OS も VineLinux の 5.0 に更新したいんですが, なかなか取りかかれません. tDiary も 2.2.2 に更新したいんですが, なんだかエラーが出るのでちょっとペンディングしています. クリッピング空間 レン
インテル® グラフィックス・パフォーマンス・アナライザーを利用してインテル® Media SDK により最適化されたアプリケーションを解析する方法 この記事は、インテル® デベロッパー・ゾーンに公開されている「Unity* Optimization Guide for Intel x86 Platforms: Part 1」(https://software.intel.com/en-us/android/articles/unity-optimization-guide-for-x86-android-part-1) の日本語参考訳です。 この記事の PDF 版はこちらからご利用になれます。 目次 ツール Unity* Profiler インテル® GPA System Analyzer インテル® GPA Frame Analyzer x86 プラットフォームのパフォーマンスを最大限に
2年前の秋に遅延シェーディングのお話をしましたが、あらためて読み返してみたところ、ビュー空間の深度から求めたジオメトリの位置がおかしいことに気づきました1。 今日は、今秋にふさわしい深度の再構築方法 (reconstructing position from depth) について見直していきます。 前回のシェーダー(悪い例) 前回の日記では G-Buffer にビュー空間の深度値を書き込み、必要に応じて深度から ライティングパスでポイントライトなどを実装するためには、ワールド空間(またはビュー空間)のジオメトリの位置が必要です。 これを G-Buffer の深度値から求めるために次のようにしていました: // The following code is bad example. vec3 DepthToPosition(in vec2 textureCoord, in float dep
レイトレーシング レイトレーシングとは コンピュータによって3次元の画像を計算するアルゴリズムの一方法である。 簡単に考え方を述べると、現実の世界では太陽や蛍光灯から出た光が 物体に当たって反射し、その反射した光が人間の目に入ってものを見ることができる。 レイトレーシングではそれとは逆に目から視線が出て、その視線が物体に 当たった時、その物体が見えていると考える。 そしてその視線が物体に当たった点に当たっている光の強さの程度に よって、その点の色を決定する。 3次元の画像を生成するためのアルゴリズムは他にも代表的なものとして、 スキャンライン、zバッファ などがある。 レイトレーシングは例えばスキャンラインやzバッファと比べて次のような特徴がある。 長所 美しい画像を作りやすい。 透過や屈折の効果を出すことができる。 アルゴリズムがシンプルでわかりやすい。 消費するメモリーが少ない。 短所
この記事は,WebGL Advent Calendar 2016 16日目の記事です。 今年も何もしてないなぁと思いながら生きていたのですが、WebGLで色々成果を挙げている友人に感化されて飛び入り参加しました。よろしくお願いします。 今回は環境マップでよく利用されているキューブマップを使って、WebGL上で擬似的なIBLを、拡張機能を利用する方法としない方法の2つ実装しました。 この記事では実装の中で得た知見を共有できればと思います。 今回作ったもの https://github.com/kaneta1992/cubemapIBL IBL(Image Based Lighting)とは IBLと略すこともある。実在する風景の写真や高精細な画像をライティングの色情報に使用して、シーンをレンダリングする方法。広いレンジの明るさ情報を記録できるHDRIを用いることで、自然な光と陰影を表現できる
はじめに この記事では、WebGL 2.0について概要レベルで説明します。 「あれ? いつもみたいに細かくやらないの?」というツッコミもあるかもしれませんが、本記事、実は私が最近始めた「WebGL Learning Path JP」というWebGL学習支援紹介サイトのコンテンツの一部としてリンクすることを前提にしているものですので、そんな流れになっています。 そのうち細かい説明も別の記事でやるかもしれませんが…、ひとまず今回は概要レベルです。 すでに概要を説明されている先人がいた…。 皆さんご存知、WebGLといえば学習スクール等も運営されている @doxas さんが、かなり昔にWebGL 2.0についてのスライドを公開されています。 当時から目をつけてたって、すごいよ…。 WebGL 2.0の概要:「WebGL 2.0 は WebGL 1.0の増強版だ!」 @doxasさんのスライドと同
はじめに 皆さんこんにちは! 日本のWebGL界において、意識高い系WebGLおじさんとして知られるエマ・デュランダルさんですよ!(挨拶) さて、皆さんWebGL楽しんでますか? WebGLはネイティブのOpenGLと違い、glGetErrorとかglShaderInfoLogとかで明示的にエラー確認を行わなくても、エラーが発生した際はブラウザが親切にちゃんとコンソールにエラーメッセージを出してくれます。 非常に3Dプログラミングしやすい環境だと思います。 それでも、「どうしてもこのエラーが取れない!! 正しくWebGLのAPIを呼び出してるはずなのに、どうしてエラーが出るの!? 亡霊かよこのエラー!」っと叫びたくなる時もあるものです。 どうしてか。大抵の原因は、WebGL(及びそのベースとなったOpenGL ES)のAPIについての理解不足にあるんです。 おやおや、今日もWebGLで悩め
OpenGLの後継であるVulkanがついに正式公開されました。 色々とやる前にまずは,開発環境の設定と初期化等を説明するためにクリアカラーを表示するだけの単純なサンプルを作ってみました。開発環境はWindowsを前提として,話を進めていきます。 OpenGLなどのAPIを策定するKhronos Groupは2015年のGDC(Game Developers Conference)で新しいグラフィックスAPI「Vulkan」(ヴァルカンと読む)を発表しました。 実は私GDCで実際に発表される場にいまして,当日は超満員で部屋に入れない人などももいました。講演開始の1時間前ぐらいに席取りのため着席したのですが,すで1時間以上前だというのに,人がちらほらいてあっという間に席は無くなってしまいました。 その時の講演の動画がYouTubeにアップロードされています。 さて,Vulkanの何
877.fm 実は今日知ったんですけど, 和歌山市内にある "バナナ FM" (877.fm, エフエム和歌山) は, 株式会社ではなく NPO 法人なんですね. この放送局は空中線電力が 20W しかなく, サービスエリアが和歌山市とその周辺くらいしかありません. 番組内容も独自のもので, メジャーなタレントを呼ぶとかそういうこともなく, 時には高校のブラスバンドの演奏を流したりして, それはもう地味というか, 地元に密着した内容になってます. どこかのテンションがやたら高い放送局と違って DJ も日常会話のように自然にしゃべっていて, 気負いがありません. いいです. 日々の生活に実にフィットします. CM にも「近所のあの店が CM してる!」という親しみやすさがあります. 私はこの放送局と縁もゆかりもありませんが, 永く続いて欲しいと思ってるので, 皆さん応援してあげてください.
Unity 5.3で気になった項目まとめ Unity 5.3で新しく追加・変化する機能についてです。 個人的に気になる順番で紹介します。 Unity 5.3で気になった項目まとめ プラットフォーム個別ダウンロード マルチシーンエディティングとその周辺 LZ4圧縮のAssetBundle マルチディスプレイ 非同期なテクスチャのアップロード パーティクルの改善とその周辺 2D周りとその周辺 幾つかのiOS9機能の対応 パフォーマンスについて色々 OpenGL Core SSRや新しいイメージエフェクト リアルタイムGIの解像度をシーンビューで確認可能に リアルタイムGIのベイクが高速化 カスタムコルーチン UnityWebRequestのモバイル対応 JSONの公式サポート Web GLからPreviewが取れた IAP(アプリ内課金)の追加 AndroidのHide Status Barが
はじめに Unity でネイティブ側(C/C++ 等)で作成したテクスチャを利用する方法はいくつかあって、テラシュールブログさんにまとめられています。 Unityでテクスチャを読む7つの方法 - テラシュールブログ Unityでテクスチャを読む7つの方法 4・5・6について - テラシュールブログ ネイティブで作成したテクスチャを使用する - テラシュールブログ 私もこれ以外の方法として、よく使う Texture2D.SetPixels() を使う方法と Low-Level Native Plugin Interface(低レベルネイティブプラグインインターフェース)をざっくりと紹介しました。 Unity で OpenCV で作成したテクスチャをネイティブプラグイン経由で利用してみた - 凹みTips Unity の Low-level Native Plugin Interface を調
.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
この記事は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をやる上でいずれ避けて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く