TortoiseGitでのリモートブランチの削除方法をいつも忘れてしまうので,メモにしておきます。
①フォルダをクリックして,コンテキストメニューを表示して,「切り替え(W)」を選択。
②ダイアログの「…」をクリックする。
③左側のrefsからremotesを選択する。ブランチ名一覧から削除したいブランチを選択し,コンテキストメニューの「リモートブランチを削除」を選択する。
これでリモートブランチが削除できるようです。
こんにちわ、Pocolです。
今回は用語についてメモを残しておこうと思います。
間違いが多々あると思いますので,間違いがあったらご指摘いただけると幸いです。
バスとは、コンピュータ内部でデータや信号を伝達するための回路や通路のこと。
メモリがデータを一度に送れる量。
NVIDIA GeForce GTX 980 はメモリバス幅は256 bit
NVIDIA GeForce GTX 980 Ti は 384 bit
バス幅×周波数×1サイクル当たりの転送回数=帯域幅 …らしい。
NVIDIA GeForce GTX 980 はメモリ帯域幅が 224 GB/s
NVIDIA GeForce GTX 980 Ti は336.5 GB/s
パソコン本体のメモリ(メインメモリ)と同じく、一時的にデータを保存する場所で、グラフィックカードについているメモリは「VRAM」と呼ばれるそうです。
処理装置と主記憶装置とのデータのやり取りを高速化するためのメモリーだそうです。
キャッシュメモリで調べると「CPUとの~」的な説明が多いですが,GPUにも搭載されています。
L1キャッシュ,L2キャッシュの例え話。
料理の方が速度的な違いはでるかも。キッチンがL1キャッシュ、冷蔵庫がL2キャッシュ、隣町のスーパーがHDD、そしてDVD/BDがHDDが農家って感じかな?
— ひげねこ@技 (@HigenekoTech) 2012, 11月 22
* キッチン:L1キャッシュ
* 台所:L2キャッシュ
* 冷蔵庫:L3キャッシュ
* スーパー:HDD
という例えもある。
キャッシュの中に必要なデータが無いこと。
命令セットとは、あるマイクロプロセッサで使用できる命令の集合。
そのプロセッサを動かすための機械語コードの体系で、プロセッサに対してどのような命令が使用できるか、また、命令がどのような動作をするのかを定めたものだそうです。
命令のこと。
コマンドバッファとは,GPUが実行するコマンド列のバッファのこと。
図は,Matle Programing Guide p.13 より引用。
Microsoftのドキュメントによると(https://msdn.microsoft.com/ja-jp/library/ee422102(v=vs.85).aspx)
「コマンド リストは、記録と再生が可能な GPU コマンド シーケンスです。」
とのこと。
DMAはDirect Memory Accessの略。
CPUを介さずに「直接」メモリに転送すること。
DMA転送のメリットは,CPUの負荷を上げずにハードウェアの能力を利用した高速なデータ転送が実現できること。
メモリ関係で,ヒープといったらツリー構造ではなく,動的にメモリ確保可能なメモリ領域のことを指す。
ヒープ (heap) とは,「山積み」という言葉の中の「山」をさす英単語らしい。
1秒あたり何ピクセルの描画をすることが出来るかという能力値のこと。
マルチスレッドなどの環境の排他制御において、ロックを獲得するまでスピン(ビジーループ)で待つ方法
こんにちわ、Pocolです。
Direct3D12を触り始めたのですが,いくつかよく分からん用語があるのでメモとして残しておこうかなと思います。
リソースとシェーダーの対応付けを行うためのテーブルの定義で,レジスタとのバインド状態を指定するようです。
直接 Descriptor を格納すると 4個しか入らないので DescriptorTable と組み合わせて使うようです。
https://msdn.microsoft.com/en-us/library/windows/desktop/dn899208(v=vs.85).aspx
D3D12_ROOT_SIGNATURE_DESC ルートシグニチャのレイアウトを表します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn986747(v=vs.85).aspx D3D12_ROOT_PARAMTER ルートシグニチャのスロットを表します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn879477(v=vs.85).aspx D3D12_ROOT_PARAMTER_TYPE ルートシグニチャのスロットのタイプを表します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn879478(v=vs.85).aspx D3D12_ROOT_DESCRIPTOR_TABLE Descriptor Heapに次々と表示されるDescriptor範囲の集合としてDescriptor Tableのレイアウトを表します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn859382(v=vs.85).aspx D3D12_DESCRIPTOR_RANGE DescriptorTable内の与えられたDescriptorの範囲を定義する。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn859380(v=vs.85).aspx D3D12_DESCRIPTOR_RANGE_TYPE 範囲タイプを指定する。指定するデータ範囲がSRVを表すものなら,D3D12_DESCRIPTOR_RANGE_TYPE_SRVを指定する。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn859381(v=vs.85).aspx D3D12_ROOT_CONSTANTS 1つの定数バッファとして表示されるルートシグニチャ内の定数インラインを表します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn879475(v=vs.85).aspx D3D12_SHADER_VISIBILITY 与えられたルートシグニチャのスロットのコンテンツにアクセス可能なシェーダを指定します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn879482(v=vs.85).aspx D3D12_STATIC_SAMPLER_DESC 静的サンプラーを表します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn986748(v=vs.85).aspx D3D12_ROOT_SIGNATURE_FLAGS ルートシグニチャのレイアウトのオプションを指定します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn879480(v=vs.85).aspx
ルートシグニチャの例
https://msdn.microsoft.com/en-us/library/windows/desktop/dn899123(v=vs.85).aspx
D3D12における単一リソースのバインディング(結び付け)の基本単位。
https://msdn.microsoft.com/en-us/library/windows/desktop/dn899109(v=vs.85).aspx
関係するものは以下のとおり。
* Index Buffer View D3D12_INDEX_BUFFER_VIEW 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn891445(v=vs.85).aspx * Vertex Buffer View D3D12_VERTEX_BUFFER_VIEW 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn903819(v=vs.85).aspx * Shader Resource View D3D12_SHADER_RESOURCE_VIEW_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770406(v=vs.85).aspx 作成には ID3D12Device::CreateShaderResourceView を呼び出します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn788672(v=vs.85).aspx * Constant Buffer View D3D12_CONSTANT_BUFFER_VIEW_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770351(v=vs.85).aspx 作成には ID3D12Device::CreateConstantBufferView を呼び出します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn788659(v=vs.85).aspx * Sampler D3D12_SAMPLER_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770403(v=vs.85).aspx 作成には ID3D12Device::CreateSampler を呼び出します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn788671(v=vs.85).aspx * Unordered Access View D3D12_UNORDERED_ACCESS_VIEW_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770451(v=vs.85).aspx 作成には ID3D12Device::CreateUnorderedAccessView を呼び出します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn788674(v=vs.85).aspx * Stream Output View D3D12_STREAM_OUTPUT_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770410(v=vs.85).aspx * Render Target View D3D12_RENDER_TARGET_VIEW_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770389(v=vs.85).aspx 作成には ID3D12Device::CreateRenderTargetView を呼び出します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn788668(v=vs.85).aspx * Depth Stencil View D3D12_DEPTH_STENCIL_VIEW_DESC 構造体を使用して作成。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn770357(v=vs.85).aspx 作成には ID3D12Device::CreateDepthStencilView を呼び出します。 https://msdn.microsoft.com/en-us/library/windows/desktop/dn788661(v=vs.85).aspx
Descriptor Heap は Descriptor の連続するメモリ割り当てのコレクションです。
Descriptor Heap は Pipeline Stat Object(PSO), Shader Resource View (SRV), Unordered Access View (UAV), Constant Buffer View (CBV)などいくつかのオブジェクトタイプを含みます。
http://www.isus.jp/article/game-special/direct3d-12-overview-part-3-resource-binding/から引用。
何かが描画ターゲットやテクスチャーとバウンドされている場合、その処理中はランタイムとドライバーの両方が追跡しています。 ランタイムとドライバーがバインドを検出すると、古い設定をアンバインドし、新しい設定を適用します。 この方法でゲームは必要に応じてスイッチを作り、ソフトウェア・スタックはシーンの背後にあるスイッチを管理します。 さらに、ドライバーは描画ターゲットをテクスチャーとして使用するため、GPU パイプラインをフラッシュする必要があります。 そうしないと、GPU でリタイアする前にピクセルが読み取られると、コヒーレント状態を保てません。
上記の参照ページに詳細が載っているので、そちらを見たほうが早い。
Conservative Rasterization はピクセルレンダリングにある確実性を追加します。特に,衝突検出アルゴリズムに有用とのこと。
Conservative Rasterization は,描画されたプリミティブによって,少なくとも部分的に覆われるすべてのピクセルがラスタライズされ,ピクセルシェーダが起動します。
https://msdn.microsoft.com/en-us/library/windows/desktop/dn914594(v=vs.85).aspx
ラスタライズ処理によって同一画面座標上となったピクセルの陰影処理に起用されるピクセルシェーダの処理順を規定できる機能らしい。
GDCでは,OITの話をしていた。https://software.intel.com/sites/default/files/managed/4a/38/OIT-to-Volumetric-Shadow-Mapping.pdf
こんにちわ、Pocolです。
いつの間にやら7月になってしまっていますね。歳をとると早いものですね。
さて,7月に入りVisual Studio 2015 の正式版リリースまで 9日を切りました。
もうすぐVisual Studio 2015 と Windows 10 が Microsoft から正式版としてリリースされます。
そして,先日 Window 10 Insider Preview と Window 10 Developer Preview Tool の最新版である Build 10166(現在は,Windows 10 RTM Build 10240が提供されています) が提供されました。
d3d12.h のヘッダファイルも前バージョンとの差分がなくなり,ようやく仕様として固まったのかな? という感じがします。
実はとある事情で,d3d12の記事を書いていなかったのは,仕様が変更される可能性があり対応は6月以降にしたほうが良いと。
とあるイベントで,とある会社の人から教えてもらったからなのであります。
そんなわけで,正式版リリースが間近に迫った今大規模な変更はおそらく可能性少ないので(…と思いたい)
Direct3D 12についてちまちま書き始めます。
まずは,リリースまで待てない人のために開発環境の構築方法について説明します。
必要なものは以下の通りです。
(1) Windows 10 Insider Preview
(2) Visual Studio Community 2015 RC
(3) Windows 10 Developer Tool Preview Tool
(4) Graphics Tools
まず,Windows 10 Insider Preview ですが,ぶっ壊れても良いマシンにインストールしましょう。まだ正式版ではないので,最悪データが全て吹っ飛んだりなどする可能性があります。
絶対に普段使うメインマシンにはインストールしないようにしましょう。
そんなわけで,別の物理マシンがあればよいのですが,ない場合は仮想マシンにインストールするという手もあります。
ちなみに自分の場合は仮想マシンにインストールしています。
Windows 10 Insider Preview は下記のマイクロソフトのサイトから*.isoでダウンロードできます。
http://windows.microsoft.com/ja-jp/windows/preview-iso
最新版であるWindows 10 RTM Build 10240 は下記からダウンロードできます。
http://microsoft-news.com/download-windows-10-rtm-build-10240-iso/
仮想マシンの場合は,インストールする際にこの*.isoファイルを選択しましょう。
物理マシンの場合は,*.isoをDVDに焼いてインストールするか,Windows USB/DVD Toolを使ってUSBからブートできるようにすると良いと思います。
このインストールあたりは,Windows 8とさほど変わらないので,世の中にあふれているWindows 8/8.1などのブートディスクの作成方法を参考にすると良いと思います。
続いてVisual Studio Community 2015 RCのインストールです。
下記のマイクロソフトのダウンロードページからRC版をダウンロードします。
https://www.visualstudio.com/ja-jp/downloads/visual-studio-2015-downloads-vs.aspx
ダウンロードしたら,ダウンロードした*.exeをクリックしてインストールを開始します。
このときPocolが注意したのは,「カスタム」でインストールすることです。
次の画面では,Windows SDKにチェックを入れました。
この設定に気をつけて,インストールボタンを押してインストールを開始します。
きちんとボタンを押す前にWindow SDKの古いバージョンがインストールされることを確認しましょう。
しばらくすると,インストールが終わるので待ちましょう。
仮想マシンを使っている人は,インストールが全然進まない!とイラつく前にネットワークの設定がきちんとされているか確認しておくと良いと思います。
VM Wareにインストールしたときはすんなりいったのですが,Virtual Box にインストールしたときは,このネットワークの設定をしていなかったせいで,インストーラーがファイルをダウンロードできず全然インストールが進みませんでした。
ネットワーク設定をきちんとしたら,すんなりインストール終わりました。
続いて Windows 10 Developer Preview Tools の最新版を手動でインストールしましょう。
SDK自体は,下記のマイクロソフトのサイトからダウンロードできます。
https://dev.windows.com/en-us/downloads/windows-10-developer-preview
ダウンロードしたら,ダウンロードしたファイルをクリックしてインストールをしましょう。
この際,インストール前にSDKのバージョン番号が表示されますが10.0.10166であることを確認しましょう。
最後に,Graphics Tools がインストールされていることを確認します。
インストールされていない場合はインストールしましょう。
確認方法は,スタートボタンからスタートメニューから「設定」→「システム」→「アプリと機能」→「オプション機能の管理」に行き,
「Graphics Tools – This adds DirectX Graphics Tools support」があることを確認します。
Graphics Tools が無い場合は「機能の追加」ボタンを押して追加を行いましょう。
これで開発環境が構築できました。
あとは,ガリガリとコーディングしていきましょう!
次の記事では,Direct3D 12ってなんぞ?というあたりを書きたいなぁと思っています。
この記事は,レイトレ合宿3!!!アドベントカレンダー第2回目の記事です。
本当は,VCMの解説をやろうかと思ったのですが,残念ながら論文を読んでいる時間がありません。
でも,レイトレ合宿はすぐやってくるわけでしてコードは書かなきゃいけないですよね~。
そんなわけで,今日はレイトレ合宿に向けてコードをガリガリと書くのに役立つサンプルを紹介するということにしたいと思います。
まずは,基本を押さえるという意味でholeさんのeduptは確認しておきましょう。
edupt
ありがたいことに,holeさんが解説をスライドで上げてくださっています。
皆さん感謝しましょう。
holeさんありがとう。
eduptを見終わって双方向パストレに興味がある人は,またまたholeさんがコードと解説スライドを上げてくださっています。
edubpt
皆さん感謝しましょう。
holeさんありがとう。
続いて,過去のレイトレ合宿の参加者のコードを読んでおくというのもおすすめです。
見ていない人は確認しておきましょう。
レイトレ合宿!
レイトレ合宿2!!
続いておすすめなのは,海外の大学の授業?でレンダラ―を書いて提出というものがあるのですかね。ツイッターで自分のタイムラインに乗ってきたものがあるので,いくつかご紹介します。
Bidirectional Path Tracer in CUDA. Student work by Paula Huelin Merino and Robert Cassidy. https://t.co/N0eVzRQwbd pic.twitter.com/KZ6zZARU3B
— Patrick Cozzi (@pjcozzi) 2014, 12月 8
CUDA path tracer with motion blur, AA, depth of field, and texture mapping by Bo Zhang. https://t.co/F7oTHSwBw6 pic.twitter.com/h3qv45FAF9
— Patrick Cozzi (@pjcozzi) 2014, 11月 3
CUDA path tracer with AA, depth of field, motion blur, and texture mapping by Wei-Chien Tu. https://t.co/32EwBtGQJ0 pic.twitter.com/bzxpVtRsF9
— Patrick Cozzi (@pjcozzi) 2014, 11月 3
New Spectral Stochastic Progressive Photon Mapping with Single-Wavelength Photons leads to 5x reduction in memory. pic.twitter.com/8o3XYl0oXn
— appleseedhq (@appleseedhq) 2014, 9月 26
なにこれ凄い… 優秀すぎる… > Image Synthesis 2014: Rendering Competition Results https://t.co/p9n1p7cV96
— Syoyo Fujita (@syoyo) 2014, 12月 19
https://graphics.ethz.ch/teaching/imsynth14/competition//1st%20Place..%20Benedikt%20Bitterli/report.html
https://graphics.ethz.ch/teaching/imsynth14/competition//2nd%20Place..%20Simon%20Kallweit/report.html
https://graphics.ethz.ch/teaching/imsynth14/competition//Beat%20Kueng/report/index.html
他にもいくつかあるので,この記事を随時更新していこうかなぁと思います。
とりあえず2015/06/02 11:00現在ではこんな感じです。
GDCのVulkanのセッションの動画がGDC Valutにてアップロードされいるようです。
http://www.gdcvault.com/play/1022018/
ちなみにこのセッションを自分は会場の真ん中あたりで生で聞いていました。
D3D12のドキュメントがMSDNにて公開されています。
https://msdn.microsoft.com/en-us/library/dn903821(v=vs.85).aspx
ぼちぼちD3D12を組んでいくことにします。
プログラマー飲み会!!の詳細が決定しました。
興味ある方は下記のページにアクセスをして参加登録をお願いいたします。
https://atnd.org/events/63383
ちなみに、食べ放題・飲み放題コースにしたのでちょっと割高です。すいません。
Twitterの方を見ている方は既にご存じかもしれないですが…
パチパチ。
そんなわけで,
お酒は飲めなくても全然かまいません!
プロ・アマ・学生問わずプログラマーで色々と話しましょう。
人に自慢したいこととか,会社で困っていることとか,これから社会人になる不安どうすればいいかとか,アイデアなくて困っているとか,これが流行る!とか,子供が可愛いいんです!とか,物理ベースレンダリングってどうなの?とか,カメラから離れたときのSSAOが気に食わないとか,研究テーマ困っているとか,産学一体で何かやりたいんだけど困っているとか,もう兎に角楽しく酒が飲みたいとか,騒げればいいとか,なもり先生大好きとか,ミクさん好きとか,どっか会社に入りたいんだけど誰か雇ってくれない?とか,VR広げたいから話させてくれとか,UE4について熱く語ろうぜとか,いやいやUnityでしょ?とかCryEngine大丈夫かいな?とか,Direct3D 12来たね~とか,glNext対応しないとね~とか,グラフィックスだけじゃなくてサウンドも語らせろとか,スクラム道話してもいい?とか,いや戦車道について熱く議論しようとか,メガデモの輪を広げたいとか,OpenGLの話したいとか,ゲームプログラムについて語ろうぜとか,日本のCG界なんとかしなきゃとか,山登りの魅力伝えたいとか,ボルダリング仲間集めたいとか,ロードバイク仲間探しているとか,関西地区だからたまには関東の人と話したいとか,九州地区の方がいいぜとか,皆の恋愛事情どうなの?とか,最近結婚しましたとか,フットサルやろうぜとか,バスケやろうぜ,野球野郎やろうぜ,スキー・スノボーやろうぜとか,ユタティーポットについて熱く語るとか,レイトレ野郎求む!とか,業界のつながりをつくりたいとか,好きなAV女優について語るとか,あそこの昼食が凄くおいしいとか,今日はすごくプログラム書けたとか,あのバグが分からんとか,昨日はプログラム書かなかったとか,人と話すのが苦手だからちょっと克服したいとか、SunsetOverdriveちょー楽しいとか,The Orderやった?とか,すれ違い通信したいから今日来たとか,僕は宇宙と交信できますとか
…もう、何でもいいです!
たまには集まって、お酒やジュースのみながら、ちょっと気晴らししましょうよ。
知り合いを是非誘ってご参加くださいませ!
参加希望者は下記ページから参加登録をお願いしやっす。
https://atnd.org/events/63383
ちまちまとLogPSM訳してはいるんですが,ちょっと飽きてきました。
そんなわけで,息抜きとしてプログラム書こうかなと思いました。
いつもはグラフィックス系のプログラムばっかり書いているので,
たまにはちょっとゲーム寄りのプログラムも書いてみたいなぁーと思い立ったが吉日。
早速書いてみました。
最近知り合いの方とボードゲームをやる機会があるのですが,そのボードゲーム教育向けにはすごく良いのですが,ゲームとしてはかなりツマラナイ。
ちょっと手を加えてやれば面白くなりそうなのに残念だなぁーと思っていたのですが,「そうだ!自分でつくればいいんじゃね?」と安直に思い立ちました。
そういうわけで,すごろくゲームをつくってみようかなーと思います。
すごろくゲームの肝といえば,やっぱりサイコロ。
よっしゃ!作るか! …と思い立ちましてサイコロシミュレータ作ってみました。
サイコロを振るプログラム自体は (乱数 % 6) + 1 で速攻で実装が終わるのですが,アニメーションどうしようかな?と詰まりました。
まず困ったのがどうやってサイコロ回転させるということです。
適当に回転させると目が偏るし,縦回転だったやつが急に横回転になるのも何か変な感じするしなぁーと悩む。
HavokとかPhysXとか使ってガチでシミュレーションさせるのもいいんですが,今度は終了条件決めるの面倒じゃね?と悩む。
結局わからないので,桃鉄参考にすればいいんじゃん!と思い,土日でひたすら桃鉄のサイコロを研究・考察して作成したのが,動画のサイコロシミュレータです。
まだ1個しかサイコロ振れませんが,なんとかしてサイコロ5個までは対応したい & 音つけたいです!!
ちなみにサイコロの軌跡は完全に手付けです。そのため,位置決めが結構面倒くさい。だから2個とか3個とかサクッとつくれていないんですよねぇ~。
正射影で計算して45度回転させるのも手かなぁ~なんて思ったのですが,結局実装のコストとか考えて手付けアニメーションにしました。
とりあえず今は普通のサイコロのテクスチャ使っているのですが,「これサイコロのテクスチャ変えれば,”ごきげんよう”できるんじゃね」とか色々と面白いことに使えそうな気がします。
あと,乱数は0 ~ uint32_tの最大値 だと,偏りが出来て各目の確率がぴったり 1/6 にならないので,乱数が6の倍数になるようにきちんと生成範囲は調整を加えています。
※追記
サイコロ5つまで対応してみました!!
あと,折角なのでGithubでソースコードを公開しました。
下記からダウンロードできます。
https://github.com/ProjectAsura/dice