コンテナボックス内のフロートクリアについて2

確認済みブラウザ

IE 5.5/6.0/7.0 IE 5.1.7 Firefox 1.5/2.0/3.0 Safari 2.0/3.1 Opera 9.0 Netscape 7.1

Internet Explorer 7 の日本語版が配布されたことに伴い、動作確認をしてみたところ、コンテナボックス内のフロートクリアが動かなかったので、その対処バージョンです。

This hack is old. Please use the latest edition.
このハックは、古いです。最新版を使ってください。

hwrapにある IE5〜IE6対策の hight:1% を html>body で hight:auto に置き換えます。この1行でIE7にも対応できるようになりました。
続きを読む コンテナボックス内のフロートクリアについて2

FPrime caustics(コースティクス) test01

FPrime ではコースティクスが反映されません。そこで情報が無いか探していたらこんなブログの記事を見つけました。

FPrimeでcausticsを描画する方法です。
スタンダードのライトを使用せずに、オブジェクトをライトにする。
FPrimeはモンテカルロラジオシティでバウンスを2以上に設定する。
コースティクスを施したいオブジェクトのサーフェイス設定で、反射を0%にし、透明度を少し上げる屈折インデックスを0.01にすることで、透過光は反射光のような振る舞いをします。
引用元:3DCG:LABO

この記事の元が CGTalk – Fprime’s caustics にあるので、そっちも参考にして作ってみました。

FPrime’s causticsHack

Lightwaveでの通常レンダリングLightwave ネイティブでのレンダリング結果。シェーディング設定はこちら

FPrimeでの通常レンダリングコースティクスの効果を出したいのは、左のリングです。透明の球はコースティクスの効果が出ていますが、リングの方はコースティクスの効果がありません。

FPrime Hackでのレンダリング 引用にもあるように、Hackするためにシェーディングを変更します。
元記事の方に詳細があったので、そちらを適用してみました。
Everything 0 / Transparency 100 / Indice of refraction 0.01
Hack後のシェーディングは設定こちら

FPrime Hackでのレンダリング カラーを設定してみました。シェーディングは設定こちら
この Hack を使うことで、FPrime でもコースティクスの効果が出ました。

the indice of refraction, when it is not equal to 1, will “bend” the ray as it goes through a surface… in Lightwave an indice of 0,001 will bend the ray 180°, it just goes back, as if it was a reflected ray !
引用元:CGTalk – Fprime’s caustics

Lightwaveは、Indice of refraction が0.01〜0.001の場合、光線を180°湾曲させて表示するようです。ということであれば、Lightwave ネイティブのレンダラーでも同じような見た目になるはずです。

Lightwaveでのレンダリング ネイティブのレンダリングでも、同じように出来ました。ノイズを除けば、ほとんど同じ画像になります。この画質でレンダリング時間はFPrimeの約2倍です。
シェーディングの設定は、hackと同じ

FPrime’s causticsHack というより、Lightwave IndiceHack と言った方が良いかもしれません。

Lightwave9 Modeler 保存する際の拡張子付け

Layout も Modeler 保存する際に、手動で lws または .lwo と拡張子を付けてやらないと、拡張子なしで保存します。Layout の場合は拡張子なしのファイルも開くのですが、Modeler は拡張子なしだと開きません。手動で .lwoと付けるのも面倒なのです。

そこでファイルダイアログを「VBFileRequester」に変更します。変更の仕方は、 表示オプション→インターフェイス→ファイルダイアログのプルダウンを「VBFileRequester」へ。
これで、拡張子を手動で付けなくても、自動的に拡張後付きで保存されます。

GlobaoIllumination(グローバルイルミネーション) test01

LightWave 9 LayoutMaxwell RenderfryrenderIndigo などの物理法則に基づいた優れたレンダラーがありますが、手持ちのアプリケーションでもキレイな画像が出来ないかと、試行錯誤するテストです。

使用ソフト:Lightwave v9 + FPrime Version 2.1(Worlry Labs)

Lightwave v9 単体でもGlobaoIlluminationのレンダリングは出来ますが、レンダリング中の%表示が無く、動いてるんだか、止まってるんだか、どこまで進んでるのか不明って言うのが、不便です。さらにWorlry Labs のPlugin、FPrimeに比べてレンダリング速度が遅いです。

レンダリング速度と画像の比較。(モンテカルロ)

画像のように、GlobaoIlluminationのレンダリングに関しては、FPrimeがアンチエイリアシングもかかり速くてキレイです。

ということで、ここではFPrimeを使って、試行錯誤していこうと思います。

MC Bounce(Monte Carlo Bounce) と Intensity について。

Sample画像 もとになったサンプル画像です。そのまま置くと二次利用ができてしまうため、加工しています。(画像は「素材辞典 フォトバイブルの vol.42『インテリア・住空間編』」の写真です)

MC Bounces 1のレンダリング画像 レンダリングは速いですが、相互反射の効果が見られず、光と影のコントラストがありすぎて不自然な感じに見えます。(MC Bounce 1 / Intensity 100% / time:20m02s)

MC Bounces 3のレンダリング画像 レンダリングは遅くなりますが、若干相互反射の効果が見られ、1よりは自然に見えます。まだ、全体的に暗いです。(MC Bounce 3 / Intensity 100% / time:35m17s)

MC Bounces 1のレンダリング画像 そこで Intensity を200%に変更してみました。Intensityが倍になると、レンダリング時間も倍程度になるようです。(MC Bounce 1 / Intensity 200% / time:42m26s)

MC Bounces 3のレンダリング画像Intensity を200%にした状態でMC Bounceを3に変更してみました。絵が飾ってある壁は元は灰色なのですが、相互反射により床の色が反映されています。(MC Bounce 3 / Intensity 200% / time:1h19m04s)

MC Bounces 6のレンダリング画像 以上をふまえた上で、最終的なレンダリングとして、250%、MC Bounce 6でレンダリングをしてみました。2時間かかってますが、まだノイズが見られます。(MC Bounce 6 / Intensity 250% / time:2h32m57s)

MC Bounces 6のレンダリング画像 ノイズを減らすために、さらに8時間ほどレンダリングをしてみました。レンダリングをバックグラウンドでしつつ、他の作業が普通にこなせるので、CPUを有効利用できます。ただし、常にフル回転なので、うちの環境だと発熱がすごい…(MC Bounce 6 / Intensity 250% / time:10h01m24s)

GlobaoIllumination + 環境光について

MC Bounces 1のレンダリング画像 そこで、環境光を使って擬似的に再現してみました。床のシェーダーを調整すればこれでも良さそうです。ただし、環境光で明るさを全て底上げしているため、不自然な箇所がいくつか出てきています。このやり方の場合、RenderTimeの短縮が1番の魅力になりそうです。(MC Bounce 1 / Intensity 100% / time:21m14s)

ということで、環境光で全体の明るさを上げてしまうと、のっぺりとしたコントラストの無い画像になってしまいます。さらに環境光の場合、相互反射により周りのObjectの色が映り込む効果も期待できません。ここはやはり Intensity で調整するべきだとおもいます。

Mac版IEのoverflowバグ回避について

Mac版のIE がサポート終了、配布中止になってから10カ月。WindowsIE5.5同様、いまだ多くの制作現場では対応するべきブラウザになっています。

さて、Mac版IEのoverflowバグですが、div要素以外の、ブロック要素(p要素やpre要素など)にoverflow(visible以外)を設定した場合、表示がおかしくなります。

続きを読む Mac版IEのoverflowバグ回避について