ボレロ村上 - ENiyGmaA Code

中3女子です。

2011-12-01から1ヶ月間の記事一覧

コンパイル時 FizzBuzz を読んでの Sprout C++ Library 改善

id:osyo-manga さんの Sprout を使った記事↓ [C++][Sprout]Sprout でコンパイル時 FizzBuzz http://d.hatena.ne.jp/osyo-manga/20111207/1323187352 を読んで、「ああ、Sprout にこんな機能が足りなかったな」という部分に思い当たったので、 それを追加した…

Sprout.Darkroom で外部ファイルからのテクスチャマッピング

https://github.com/bolero-MURAKAMI/Sprout Sprout.Darkroom に、コンパイル時に外部ファイルからテクスチャを読み込む機能を追加しました。 テクスチャマッピングの定番ということで、球体に世界地図を Spherical Mapping で貼り付けてみます。 out.png ア…

Sprout.Darkroom でチェック模様のテクスチャを使ったレンダリング

Sprout.Darkroom は、constexpr ベースのコンパイル時レイトレーシングライブラリです。 https://github.com/bolero-MURAKAMI/Sprout Sprout.Darkroom は、特定のインタフェースのクラスをテクスチャマップやスペキュラマップとして オブジェクトに設定する…

Boost.Wave を使ってみる

本記事は、Boost Advent Calendar 2011 の9日目の記事です。 本稿では Boost.Wave という C/C++ プリプロセッサライブラリについて書きます。 Boost.Wave とは Boost.Wave は、パーサコンビネータライブラリ Boost.Spirit によって書かれた C/C++ プリプロセ…

constexpr レイトレーシング

これは、Sprout.Darkroom ライブラリの constexpr レイトレーサーでレンダリングした画像です。 画像サイズは 512×512 pixel。 もちろん画素データはすべてコンパイル時に生成され、ファイル出力のみが実行時に行なわれています。 光源は手前右側にあり、手…

constexpr ライブラリ

constexpr を主眼としたライブラリは未だそう多くないと思います。 C++標準ライブラリでは、numeric_limits や chrono など自明ないくつかの機能が constexpr 化されています。 また、libstdc++ など標準ライブラリベンダの独自拡張として constexpr 化され…

constexpr のコンパイラ対応

gcc4.7 は、constexpr によく対応しています。 なお、この記事のコードは gcc 4.7.0 20111126 (experimental) において検証・実行しています。 VC10 は、全く以て constexpr に対応していません。 C++11 時代の C++er は、VC10 を使うとき C++11 のことを忘…

constexpr とは

constexpr は C++11 で導入された指定子のキーワードです。 変数を明示的にコンパイル時定数として宣言したり、 実行時にもコンパイル時にも呼出しできる関数を宣言したりできます。 また、C++03 の定数値のように整数型や列挙型だけでなく、浮動小数点型や…

constexpr でレイトレーシング

本記事は、C++11 Advent Calendar 2011 の5日目の記事です。 本稿では C++11 の新機能である constexpr について書きます。 まず最初にお断りしなければならないのは、この記事は constexpr そのものについて詳しく解説したり、 導入の一助となるべく書かれ…