2013-01-01から1年間の記事一覧

Clustered Shading の論文 "Clustered Deferred and Forward Shading" を読みました

先日、CG 論文講読会で HPG2012 の論文 "Clustered Deferred and Forward Shading" を紹介しました。Motion Blur 以来 3 か月振りの発表、個人的に読みたいと思っていたこの論文をチョイスしました。Clustered Shading は Tiled Shading の発展型で、従来の …

Siv3D June 2013 で追加予定の機能

まもなく Siv3D の次期アップデート June 2013 をリリースします。一番の目玉機能は Visual Studio 2012 のプロジェクトテンプレートを使った、セットアップの大幅短縮です。 今まで Siv3D をダウンロードしてからサンプルコードを実行するまでは 5 分以上か…

「Processing によるプログラミング入門 第1回」を slideshare にアップロードしました

大学の研究室で Processing についての講義を担当することになりました。 先日の第1回目の講義では、参加した 30人ほどの研究室メンバーがメディアアート・プログラマーとして華々しく(?)デビューしました。今後も 2 週間ごとに新しいスライドを更新してい…

「Kinect 入門」を slideshare にアップロードしました

先日、大学の研究室で Kinect についての講義を担当しました。 Kinect 入門 from Reputeless 僕の研究室はデザイン系の人が多いので、「プログラムはできないけれど、Kinect で何かを提案してみたい」という人をターゲットに、Kinect とは何か、Kinect で何…

Siv3D May 2013 を公開しました

Siv3D のアップデート May 2013 を公開しました。 導入の手順はこちらです。 http://play-siv3d.hateblo.jp/entry/installおもな新機能を紹介します。 Visual Studio 2012 対応 enum class や <random> ヘッダ、range-based for ループ、emplace_back などの C++11 </random>…

シェーダの最適化についての GDC 2013 講演 "Low-level Thinking in High-level Shading Languages" を翻訳しました

Avalanche Studios Emil Persson 氏の GDC 2013 講演 "Low-level Thinking in High-level Shading Languages" を翻訳しました。HLSL の低水準での最適化について書かれている画期的な資料で、講演者が長い開発経験で得たテクニックの数々が紹介されています…

Perlin Noise を C++ で実装

プロシージャルテクスチャの作成に便利な、Ken Perlin の ImprovedNoise を C++11 で実装しました。https://github.com/Reputeless/PerlinNoiseリファレンス実装には無い、乱数シード設定、1D/2D ノイズ、オクターブノイズといった機能を追加しています。C++…

Siv3D March 2013 で追加予定の機能 [グラフィックス以外]

Visual Studio 2012 対応 ライブラリを Visual Studio 2012 の新しい機能やヘッダに対応させます。 enum class による可読性の向上、<random> ヘッダなど Boost 依存が減ることによるライブラリサイズの削減、その他パフォーマンスの向上を見込んでいます。 ドキュメ</random>…

Unity 勉強会【2】空と水

大学のサークルの Unity 勉強会、第 2 回。 『Unityではじめるゲームづくり』の第 5 章後半を進めました。空の画像が貼られた張りぼて「Skybox」をシーンに置き、視点からの距離に応じてフォグの色をブレンドする「Distance Fog」を適用します。さらに太陽が…

コンソールウィンドウでマンデルブロ集合

C++

Windows のコンソールウィンドウにマンデルブロ集合を表示します。 マウスでぐりぐり動かして、[i] / [o] キーでズームイン / アウト。 暇があればマルチサンプリングで表示を改善したり、コードを整備したりする予定です。Visual C++ 2010 / Visual Studio …

Siv3D February 2013 の新機能(2/2)

Siv3D February 2013 で追加された機能の紹介、後編です。 線分の最近接点 Line::closest(Vec2) はある点に最も近い Line 上の点を返します。 中央の白い線分とマウスカーソルを結ぶ最も短い線分を黄色で描画してみます。 # include <Siv3D.hpp> void Main() { const Li</siv3d.hpp>…

Siv3D February 2013 の新機能(1/2)

先日リリースした Siv3D February 2013 で追加された新機能を 2 回にわたって紹介します。今回は「扇型の描画」「日付と時刻のフォーマット」「INIReader」の 3 つです。 扇型の描画 Circle 型で表現される中心座標、半径を持つ扇形を Circle::drawFan() 関…

boost::string_ref に c_str() がない理由

string_ref について Boost 1.53.0 で追加された String_Ref は、文字列の所有権を持たずに先頭のポインタとサイズだけを持つクラスです。const string& の引数を受け取る関数に const char* を渡すと、不要な string オブジェクトが作成されてしまいますが…

Unity 勉強会【1】地形を作る

大学のサークルの Unity 勉強会に参加しました。勉強会メンバーはサークル内外から集まった 7 人。全員プログラミングの経験はありますが、Unity のようなゲームエンジンを使うのは初めてでした。教科書は『Unityではじめるゲームづくり』。Unity の導入方法…

--> 演算子

C++

新しい演算子が採用されたようです。 # include <iostream> int main() { int x = 10; do { std::cout << x << '\n'; } while(x --> 0); } 10 9 8 7 6 5 4 3 2 1 0ネタ元 : What is the name of this operator: “-->”? (stackoverflow)while だと 10 が出力されないの</iostream>…

Siv3D February 2013 をリリース

Siv3D アルファ版のアップデート、Siv3D February 2013 をリリースしました。 変更内容一覧は こちら です。前回の October 2012 plus1 以降、学園祭でのサークルのゲーム制作、Tokyo Demo Fest の作品制作に時間を割いていたため、機能面の大規模な更新はあ…

C++11 の乱数ライブラリ <random>

C++

C++11 では、新しい乱数ライブラリのヘッダ <random> が追加されました。 一様にランダムな整数を生成する「乱数生成エンジン」と、値を特定の方法で分布させる「分布生成器」が用意されています。乱数生成エンジンは 線形合同法 メルセンヌ・ツイスター Lagged Fibo</random>…

モーションブラーの論文「A Reconstruction Filter for Plausible Motion Blur」を読みました

昨年 10 月から参加している CG 論文講読会にて、先週初めて発表を担当し、i3D 2012 の「A Reconstruction Filter for Plausible Motion Blur」を紹介しました。 リアルタイム向けの高品質なモーションブラーフィルタの研究で、エッジ周辺のシャープさや過剰…

6400万平方メートルの大自然 -Unigine Valley Benchmark-

「Heaven benchmark」を開発した Unigine が、新しい 3D ベンチマーク「Valley」をリリースしました。6400 万平方メートルにも及ぶ広大な自然の中を様々な視点で探検するこのベンチマークでは、Ambient Occlusion, DoF, Sun Shafts など様々なリアルタイムグ…

Boost.Multiprecision で桁あふれしない階乗と円周率 1 万桁

Boost 1.53.0 では、多倍長精度の整数、有理数、浮動小数点数を扱う Multiprecision ライブラリが追加されました。 どの数値型も基本的な演算子に対応し、浮動小数点数は Boost.Math を含む pow や sin などの数学関数に対応しています。整数型は、コンパイ…