MiniEngineをグラフィックス診断をしていてDescriptorHeapを見ていて気づいたのですが、Direct3D12ではID3D12Resouce(テクスチャ、バッファ、コンスタントバッファ、UAV)などのリソースに任意の名前が付けられるんですね(下図の赤枠)。名前がついてると、DescriptorHeapに大量にリソースがセットされていても内容がチェックしやすくて便利ですね。 クリックすると大きなサイズになります ちょっと気になったので、確認のためグラフィックスオブジェクトテーブルを見てみます。 クリックすると大きなサイズになります なるほど、Direct3D11時代のときのように従来の「オブジェクト:〇〇」(〇〇は数字)のような表記もあるんですね。 では、名前がついてるものと「オブジェクト:〇〇」表記は何が違うんでしょうか? ・・・ということで、調べてみたところID3D12O
業務や個人でのアプリ開発で、UI デザインを考えるときに参考にできそうなサイトを紹介します。なかなか個性的・奇抜だったり、少し古い UI が混ざってたりしますが、インスピレーションを働かせる良い刺激になります。 tumblr 多めです。 Behance https://www.behance.net/ Adobe のポートフォリオサイトです。 モバイルデザインのみならずファッションやグラフィックデザインなど、様々なコンテンツが登録されています。 このサイトでは Creative Field という名前でカテゴリ分けされており、アプリ開発においては Interaction Design や Web Design あたりが参考になります。 Pinterest https://jp.pinterest.com/explore/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%A
3Dコンテンツの制作において「三角関数は必須」とよく聞きます。ウェブサイト制作で三角関数を使う場面はほとんどありませんが、WebGLの勉強をすすめると3Dでは三角関数を使う場面が多いことに気づきます。本記事では3Dコンテンツ制作で使用頻度が多い基本的な数式と概念をまとめました。 今回解説する内容は地味ですが、ゲームやデータビジュアライゼーションを作る上でこの数式が基本となってきます。高校数学で学んだことをベースに、3つのサンプルを通して学習できるようまとめましたので、ぜひ最後までお付き合いください。WebGLの人気ライブラリの1つ「Three.js」を使って解説しています。 三角関数を使ったデモの紹介 まずは、本題に入る前に三角関数を使ったデモを作成したので紹介します。次のリンクをクリックしてご覧ください。 デモを別ウインドウで再生する ソースコードを確認する 地球をモチーフにしたサンプル
Vagrant + PhpStorm + Xdebug でブレークポイントを張って変数の状態をデバッグする方法を紹介します。Vagrant の synced_folder でソースコードを共有し、開発はホスト PC で、PHP 実行は仮想マシンで行っている方を対象としています。ホスト PC の PhpStorm でデバッグ実行ができるようになります。 ローカル PHP をデバッグする方法は以前書いた記事が参考になると思います。 PhpStorm+Xdebugでローカル環境のPHPをデバッグする方法 動作確認環境 Mac OSX Mountain LionPhpStorm7 目次 Vagrant 仮想マシンの Xdebug を有効化 Deployment を設定 Xdebug 実行サーバの設定 PHP Remote Debug 設定 デバッグ実行 Vagrant 仮想マシンの Xdebug
PhpStorm + Xdebug でコードにブレークポイントを張って変数の状態をデバッグする方法を紹介します。デバックによるステップ実行は IDE ではおなじみの機能ですね。PhpStorm を使うなら知っていて損はないと思います。 動作確認環境 Mac OS X Mountain LionHomebrewApache + mod-phpPHP 5.4PhpStorm 6.0.3Google Chrome 目次 xdebug をインストール PHP のバージョンと実行ファイルを設定 サーバを追加 Xdebug の待ち受けポート番号を確認 リモートデバッグ用のブックマークレットを登録 PhpStorm の Remote Debug 設定 デバッグ実行 ブラウザのアドオンでデバッグ状態のオン・オフを切り替える コマンドライン用 PHP のデバッグ実行 デバッガを起動するよりテストを書こう x
はじめに 以下のエントリではスクリーンキャプチャを System.Drawing.Graphics.CopyFromScreen() を別スレッドで回して行っていました。 qiita.com ここで触れられているようにネイティブでやった方が速いということもあり、本エントリでは Windows 8 から使える Desktop Duplication API を利用したスクリーンキャプチャの簡単なサンプルを紹介します。 環境 Windows 8.1 Unity 5.3.0f4 結果 サンプル DesktopCapture.unitypackage 追記(2016/10/28) Github に整理したものを上げました。 GitHub - hecomi/uDesktopDuplication: Desktop Duplication API implementation for Unity (o
デザイナーのベーコン(@dogdog464646)です!! プレゼン資料作りにも役立つ、デザイナーがついつい使ってしまうフォント4つを選んで解説しました! 「フォントにお金を出すのはちょっと…」という方のために無料フォントを紹介します。 いいフォントを使うと明らかにデザインが締まりますので、新しいフォントにチャレンジしてみてくださいね。 1つめ『DSきりぎりす』 (DS-kirigirisu) 「DSきりぎりす」このフォントはすごいです。 ポケモンで言ったらポッチャマ。GLAYで言ったらTERU。ドラゴンボールで言ったらベジータ。つまりスーパーヒーロー!2016年もまだまだ色んな所で使われていますね。 ▼DSきりぎりす (DS-kirigirisu) (¥16,500 ) こんな感じで使われている ●コンビニ各社で使われている ファミマのクッキーエッグタルト。あっちこっちきりぎりすフォント
概要 経緯 : http://d.hatena.ne.jp/w_o/20150602#1433229756 なんか社内チャットで https://github.com/WL-Amigo/waifu2x-converter-cpp をはやくしろというメッセージを受信したのでやった。 まあそれなりに頑張ったのでまとめておく 今の waifu2x のパラメータ(カーネル3x3、平面数32の倍数)に依存したチューニングをしている部分もあるが、 カーネルサイズが小さいCNNなら同じような考えかたを適用できるのではないかと思う 今の実装の効率はhttp://d.hatena.ne.jp/w_o/20150616#1434392833にあるとおり。 自分では確認できていないが、CUDA版はKeplerが効率悪くて、Fermi、Maxwellなら30〜40%程度の効率らしい。 前提知識 OpenCV が少
nazoです。 弊社は業務内容上、Google API、特にYouTube APIを叩くことが多いのですが、PHPクライアントであるgoogle-api-php-clientは、非同期処理を書くのは簡単ではありません。 しかし、近日リリース予定である2.0では、通信部分がGuzzleになり、そこそこ簡単に非同期処理を書けるようになりました。(最近までGuzzleのバージョンが5でしたが、6でも動かせるパッチがmergeされたようです。2016/01/20現在ではv2.0.0-RC4を利用します) ここでは最新のgoogle-api-php-clientを使用し、YouTube APIを並列実行する方法について解説します。 試してみる composerでgoogle-api-php-clientの2.0.0-RC4とGuzzleを入れた上で、以下のスクリプトを実行します。(CLI用です) G
テキストやdiv要素など、高さが分からない要素を外側の容器の高さが不明でも、上下・左右・上下左右・ビューポートの上下左右の中央寄せに配置するCSSのテクニックを紹介します。 イラスト: Girls Design Materials 2016年1月12日にIEの古いバージョンのサポートが終了し、Windows 7/8はIE11、VistaはIE9がサポートブラウザになりました。Vistaはアレなので、実質IE11を考えてWeb制作をすればよいことになります。 参考: Internet Explorer サポートポリシー変更の重要なお知らせ そんなIE11時代、そして万が一のIE9を考慮した中央寄せに配置テクニックを紹介します。 テキストや要素を左右の中央寄せに配置 テキストや要素を上下の中央寄せに配置 テキストや要素を上下左右の中央寄せに配置 テキストや要素をビューポートの上下左右の中央寄せ
コードはこちら: 全てのコードはGithub上のIpython Notebookでも公開しています。 この投稿では、1から3階層のシンプルなニューラルネットワークを構築します。出てくる全ての数学の解説はしませんが、可能な限り必要な部分は、わかりやすく説明したいと思います。数学の詳細が気になる方は、英語が多いですが参考になるリンクを下記で記載します。 この投稿の読者は最低限、微分と機械学習の基礎(クラシフィケーションや正則化など)を知っていると仮定します。更にGradient Descent(勾配降下法)のような最適化技術を知っていれば、なお良しです。ただ上記を知らなくても、ニューラルネットワークに興味のある方なら楽しめる内容だと思います。 それではまず、なぜ一からニューラルネットワークを構築する必要があるのでしょうか?後の投稿で PyBrain や Tensorflow のようなニューラル
Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible で気を付けること 以前から、Vagrant + Ansible の組み合わせでローカルの開発環境を作るなら、ホスト側に Ansible を入れるのではなく、ゲスト(VM)側に Ansible を入れる方が良いと考えていました。勉強会などでも良く話していたのでお聞きになった方もいるかと思います :) ホスト側に Ansible を入れない理由は、3 つあります。 まず、ホストに Ansible をインストールする手間が増える点です。Vagrant と Virtualbox のインストール(あとコー
まずは完成動画から。 今回は紙にインクがにじんでいくようなアニメーションをパーティクルで作ることを目的として考えました。 考察 自然な動きを再現するために、観察と考察はとても大事なプロセスです。 演出の意図がない限り、出来るだけ不自然な動きは避けたほうがいいでしょう。 とはいえ今回はそれほど難しく考える必要はありません。 インクがにじむ様子を「にじみ」と「はね」の二つに分けて考えて、「にじみ」は色の広がりがだんだん鈍くなっていく様子を、「はね」は細かい粒が先端の方から飛び散っていく様子(ほとんど動かない)再現してみることにします。 動きがだんだん鈍くなる様子はParticularの空気抵抗(Air Resistance)を強くすることで再現できそうです。 パーティクルを散らす大きなコンポジションを作って、そのコンポをカメラで撮影するような形で作ってみることにします。 Particularの
Xamarin.MacでCD-ROMやDVD-ROM、USBメモリの挿入などを検出できると何かと嬉しい。 実装例[編集 | ソースを編集] NSWorkspace.SharedWorkspace.NotificationCenterを使うと検出できるようだ。この通知で飛んでくるのは「変化のあったデバイスのパスのみ」なので、そのパスをNSWorkspace.SharedWorkspace.GetFileSystemInfoに投げて「CD-ROMなのか」「USBメモリなのか」などを判別する。なお、GetFileSystemInfoの結果はCD-ROMやDVD-ROMの場合はディスクフォーマットごとに返ってくる値が違うようだ。どんな種類があるのか全部はまだ把握していない。 通知には種類があるようで、この例では以下を実装している。 NSWorkspaceDidMountNotification -
先日のCocoa勉強会で話してきたので整理しとく。 まとめ dyldはdarwin(OS X, iOS)のld(1)。 ldのLD_*環境変数と同様に、DYLD_*環境変数で動作を制御できる。 OS X 10.11では、DYLD_*環境変数が無効にされるケースがある見込みだぜ。 dyldと"DYLD_"ではじまる環境変数 dyldはOS X/iOSのダイナミックリンカで、ライブラリやフレームワークをロードするプログラムです。man DYLD(1)にあるように、"DYLD_"ではじまる環境変数で動作を変更することができます。UnixやLinuxのLDでいうところのLD_LIBRARY_PATHやLD_PRELOADの類ですね。 すっごく雑に分けると、これらの環境変数は ライブラリの探索方法を指示 DYLD_*_PATH: 探す場所を指示する。 DYLD_IMAGE_SUFFIX: デバッグ用
dateFormat = { _fmt : { "yyyy": function(date) { return date.getFullYear() + ''; }, "MM": function(date) { return ('0' + (date.getMonth() + 1)).slice(-2); }, "dd": function(date) { return ('0' + date.getDate()).slice(-2); }, "hh": function(date) { return ('0' + date.getHours()).slice(-2); }, "mm": function(date) { return ('0' + date.getMinutes()).slice(-2); }, "ss": function(date) { return ('0' +
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く