サイト内検索
メインメニュー
クイックリンク
Blender本体、作品、文書等
BlenderFoundation
- Blenderのダウンロード
- 公式ギャラリー
- 公式チュート等
- 公式動画チュートリアル
- 公式 Wiki マニュアル
- 公式スクリプトカタログ
- Durian プロジェクト

日本語化・翻訳サイト
日本語化の設定など
ドキュメント翻訳プロジェクト(JBDP)
Python API Reference 日本語版

日本語初心者用チュートなど
WBS+

よくある質問と答え
BlenderFAQ

日本語コミュニティ
Blender@2ch
Studio MOMO(総合)
GameBlender Wiki
BLUG.JP
(BLender User Group of JAPAN)


ニュース(英文)
BlenderNation

Blenderコミュニティ
blenderartists.org
- フォーラム
- 記事検索
- New feature tests
- Model Repository

ギャラリーサイト
Blender ARt Gallery

開発サイト
Blender Project Site
- BugTracker
- BugTracker2.5用
- PatchTracker
Blender Wiki
開発情報
SVNコミットログ
SVNコミット速報

非公式テストビルド
Graphicall.org

GameBlender
公式マニュアル
専用API
BugTracker(専用)
Bullet 物理演算ライブラリ
Blender-Games.com

YafRay
YafRay
YafRay-TALK-JPN
YafRayFAQ

LuxRender
LuxRender私家版資料

Scripts & Plugins
Python2.6.4

(2.44-2.48は下記を使用)
Python2.5.2
(2.43-2.40は下記を使用)
Python2.4.2
(2.37a以前などは下記を使用)
Python2.3.5
Python Japan User's Group
BlenderArtists::python & plugins
Blender Plugin Repository
awalker's(?)page
L-sysytem(Blender Dungeon)

チュートリアルなど
Blender Cookie Blenderで3DCG制作日記 BlenderVideos.com Blender 3D: Noob to Pro
blenderguru
IngieBee's Blender site
Michael's Blender Website!

モデル&マテリアル
Blender Model Repository
Kator Legaz 3D Model
Blend Swap

マテリアル
blender-materials.org
Blender機能別: Blender2.37 透過処理のフィルタリング  
執筆者: yamyam
発行日付: 2005/6/5
閲覧数: 8259
サイズは 7.42 KB
印刷用ページ 友達に教える
 
元記事:Transparent Filtering



透過処理のフィルタリング



Alpha、transmit、filter、transparency…


Blender は透明な物を "Alpha" 値(不透明度)の設定によりレンダリングしており、Alpha が0の場合、100%透明であることを意味します。この Alpha 値は、あるピクセルが覆っている他のピクセルと、どれだけブレンドするかを定義しています。
これは画像処理からの慣習であり、Blender の古いピクセルベースのスキャンラインレンダリングシステムと相性がいいのです。

しかしながら多くの「現実」の透明な素材 ― ガラスなど ― の材質の色は、背後にある物(もしくはライトや光)とブレンドされてはいないでしょう。ただし、同様にフィルタは適用すべきです。この演算は実際には乗算であり、ブレンドではありません。例えば半透明な赤い素材(RGB:1, 0, 0)はすべての緑と青を遮断します。

このようなフィルタを定義するには、二つのアプローチがあります。
  • 新しいRGBフィルタカラー
    Alpha の代わりに、この RGB カラーがフィルタの役を務めます。例えば Maya では、これがオプション(Alpha か RGB フィルタかの選択)になっています。


  • Alpha 値と Filter 値
    Povray では、Alpha は "Transmit" (1.0 - alpha) とリネームされ、新しい値、"Filter" が加算されています。ここでは両演算は結果を加算することで協力します。

    詳細が以下にあります。
    http://www.cs.tut.fi/~tgraf/harjoitustyot/tutorial/tutorial1.7.html
    http://www.povray.org/documentation/view/3.6.1/230/




Povray: Filter 0.7、Transmit 0.7、両方を0.7

前者を選択する場合、自由な創作が可能になりますが、フィルタの決定に新しい RGB カラーをミックスするだけでなく、Material 自身に使用している同じ Texture にもこのフィルタを適用する必要がある、という欠点があります。更にこの方法では、Alpha自身は除外されており、基本的には全く違う演算になります。

この Povray のサンプルも奇妙です…この選択は単純な Alpha と Filter の加算で、簡単に実行不可能なオーバーフローに陥り、ユーザにとって編集がすばやくできる方法ではないことは明白です。
しかしながら、Alpha が従来どおりに役割を果たしつつ、後方互換性を保って追加できる方法であるという利点があります。



Blender: RGBA+F





alpha 0.4, filter 0.0



alpha 0.4, filter 0.5



alpha 0.4, filter 1.0

さまざまな方法をテストしていく中で、最も論理的な選択肢が現れました。それは単一の新しい Filter 値を定める方法で、Alpha の mix 演算の透過部分にのみ演算を行うというものです。

Filter が0.0 で、背景色(もしくは光)が Material を通してそのまま「透過」し、1.0で「透過した」部分を完全にフィルタリングします。ここの「透過」量は今も Alpha で決定されることに注意して下さい。

これはまた、単体の "AlphaOver" 演算に従来どおり集中できることも意味し、5番目の色成分(F = Filter) を使用してフィルタリングを行います。
更にいいことに、RGBA + F カラーは五重奏で一貫性のある挙動をし、ピクセルベースの Alpha の加算と同じように上手く適用できます。
/* regular alpha; RGBAo over RGBAu */
Rn = (1-Ao)*Ru + Ao*Ro;
Gn = (1-Ao)*Gu + Ao*Go;
Bn = (1-Ao)*Bu + Ao*Bo;
An= (1-Ao)*Au + Ao;

/* filtered alpha; RGBAFo over RGBAFu */
fr= 1+ Fo*(Ro-1);
fg= 1+ Fo*(Go-1);
fb= 1+ Fo*(Bo-1);
Rn = fr*(1-Ao)*Ru + Ao*Ro;
Gn = fg*(1-Ao)*Gu + Ao*Go;
Bn = fb*(1-Ao)*Bu + Ao*Bo;
An= (1-Ao)*Au + Ao;
Fn= (1-Ao)*Fu + Ao*Fo;


Blender は AlphaUnder 演算だけでなく、AlphaOver も使用しており、これは後ろから前への透過のレンダリング用です。RGBA でこれらの関数は連係できるようになり、a*(b*c) が (a*b)*c と同等になることを意味します。しかしまだ、これが RGBA+F 方法の目的に正しいものか証明する必要があります。


実装と将来の課題







フィルタを適用した Monkey



上記の画像の Alpha マスク

現在、フィルタリングされた透過処理はレイトレースレンダラにのみ実装されています。
"Mirror Transp" パネルの新しいボタン、"Filter" で使用できます。このボタンはオプション、"RayTransp" をセットした時にのみ表示されることに注意して下さい。

100%カラーフィルタリングするには、Alpha は0、Filter を1.0にして下さい。0の Alpha はフレネルの設定でも得られます。

Alpha
レイトレースによる透過では、画像のAlphaチャネルも保存するようになりました。このRGBカラーは、Sky を適用してレンダリングした時、Sky カラーで「汚染」されます。

将来的には、Zバッファベースの透過レンダリングでも RGB+F カラーをこの類のフィルタリングに使用する予定です。

同様に、カラー加算合成(Haloなど)を決定する統一された方法を探し、証明と研究を行うことも必要です。


 
評価された記事: 9.33 (3 件の投票)
このファイルの評価
カテゴリに戻る | カテゴリの一覧に戻る
ログイン
ユーザID または e-mail:

パスワード:



パスワード紛失
新着リンク
関連文書の新着

各コンテンツは特に記述がない限り、投稿者に著作権があります。投稿者の記載されていないものは管理者により作成。 
(C)2004-2010 blender.jp All Rights Reserved.  
Designed by yamyam. inspired from OCEAN-NET  
Special Thanks to kyk.:) Powered by XOOPS