スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

用紙質感テクスチャ追加 -SAI-

・テクスチャ(texture)

テクスチャを使うと物の表面の質感・手触りなど質感を表現できる

texturecompare1.png
[左 : テクスチャなし, 右 : テクスチャあり]

・SAIにテクスチャ追加方法 -用紙質感-

1. SAI用アップローダーhttp://218.219.242.231/~haruka/saiimgboard1/imgboard.cgi からテクスチャ用ファイルをダウンロードさせていただく
2. C:\Program Files\PaintToolSai\papertex フォルダに bmpファイルを保存する
3. C:\Program Files\PaintToolSai フォルダにある"papertex.confファイル"をメモ帳で開く
4. 一番下の行に "1,papertex\焦.bmp" のように保存したファイル名を記述して上書き保存する

・ SAIでの用紙質感変更方法

situkan1.png

1. レイヤーパネル画材効果の用紙質感の値を変更する
2. 適宜倍率や強さを変更する
これでテクスチャ使うことができます

・今回作ったオブジェクト
museum.png
・補足

今回はテクスチャ置場のNo.2677ランダムセットのテクスチャを使わせてもらいました
テクスチャ豊富に公開されているのすごくありがたかったです
Texture-inf.というソフトを使えばテクスチャ作れるみたいなので自分で用意しておくのもいいかもしれません

・ 参考URL

SAI講座 : テクスチャを追加する前に
http://xxxcrescentxxx.sakura.ne.jp/how_to/tex/_1_brush_1_.html
SAI講座 : アップロードテクスチャ一覧
http://xxxcrescentxxx.sakura.ne.jp/how_to/tex/bbs_img/tex.fp.html
スポンサーサイト

テーマ : 3DCG
ジャンル : コンピュータ

Papervision3Dでdaeファイル読み込み

・今回作ったFlash (ペンローズの三角形)
[クリックしながらマウス動かすと回せます]




・ソースコード

package
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.ByteArray;

import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.core.math.Matrix3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.CameraType;
import org.papervision3d.view.BasicView;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.objects.parsers.DAE;
import org.papervision3d.render.*;

[SWF(width="400", height="280", backgroundColor='#FFFFFF', frameRate='24')]
public class Main extends BasicView
{
// モデルデータ読み込み
[Embed(source = "penrose_tri05.dae", mimeType="application/octet-stream")]
private static var daeAsset : Class;

// テクスチャ読み込み
[Embed(source = "penrose_tri05.png")]
private static var materialAsset : Class;

// パラメータ
private var cameraPitch:Number = 90;
private var cameraYaw:Number = 270;
private var isOrbiting:Boolean = false;
private var previousMouseX:Number;
private var previousMouseY:Number;

// コンストラクタ
public function Main():void
{
super(390, 280, false, true, CameraType.FREE);

// コンテキストメニュー省略
stage.showDefaultContextMenu = false;

_init();
}

// 初期設定
private function _init():void
{
// モデル作成
var byteArray:ByteArray = new daeAsset() as ByteArray;
var dae:DAE = new DAE();
dae.load(byteArray);

// テクスチャ作成
var bitmap:Bitmap = new materialAsset() as Bitmap;
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bitmap.bitmapData, true);
dae.materials.addMaterial(bitmapMaterial, "mat1");

// モデル追加
scene.addChild(dae);

// カメラを透視投影から平行投影にする
this.camera.ortho = true;

// 初期オブジェクト位置
dae.x = 0;
dae.y = -185;
dae.z = 0;

// 初期カメラ位置
camera.x = 0;
camera.y = 0;
camera.z = -1000;
camera.fov = 45;
camera.target = DisplayObject3D.ZERO;
camera.zoom = 0.1;

// レンダリング開始
startRendering();

// イベント
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);

}

private function onMouseDown(event:MouseEvent):void
{
isOrbiting = true;
previousMouseX = event.stageX;
previousMouseY = event.stageY;

}

private function onMouseUp(event:MouseEvent):void
{
isOrbiting = false;
}

private function onMouseMove(event:MouseEvent):void
{
var differenceX:Number = event.stageX - previousMouseX;
var differenceY:Number = event.stageY - previousMouseY;

if(isOrbiting)
{
//cameraPitch += differenceY;
cameraYaw += differenceX;

//cameraPitch %= 360;
cameraYaw %= 360;

cameraPitch = cameraPitch > 0 ? cameraPitch : 0.0001;
cameraPitch = cameraPitch < 90 ? cameraPitch : 89.9999;

previousMouseX = event.stageX;
previousMouseY = event.stageY;

camera.orbit(cameraPitch, cameraYaw);

}
}

}
}

・Vixar Motionでmqoファイルをdaeファイルに変換

Papervision3Dでは、mqoファイルを読み込めないのでdaeファイルに変換して読み込む。
Vixar Motionというソフトを使って変換する。

Vixar Motion
http://www.vixar.jp/motion/index.html

1. メタセコイアファイルを開く
2. ファイル名前を付けて保存で、ファイルの種類をColladaファイル(*.dae)にして保存する
3. 作成したdaeファイルをメモ帳などのテキストエディタで開く
4. マテリアル名のパスを相対パスにして、マテリアル名をメタセコイアのマテリアル名に修正する

・補足

今回作ったペンローズの三角形は透視投影(Pers)用に作ってないので、投影の設定を平行投影(Ortho)に変えています。
メタセコイアのデータいちおう置いておきます、試したい方は自由にどうぞです。 penrose_tri.txt DL
(拡張子をmqoに変えて下さい、あと投影をOrthoにしてみて下さい)

・参考URL

さくさんの日記 : Papervision3Dでのdaeモデル読み込み(実用編)
http://d.hatena.ne.jp/sakusan_net/20080702/1215003280
pv3d.org : Embedding a Collada File
http://pv3d.org/2008/12/06/embedding-a-collada-file/

テーマ : 3DCG
ジャンル : コンピュータ

Gimpで法線マップ作成

・法線マップ(ノーマルマップ)

法線マップは、バンプマップの一種で、正規化された法線(x,y,z)を(R,G,B)に置き換えた画像
ノーマルマップを使うと凹凸の表現ができる

height_normal.png
<左 : 高低マップ , 右 : 法線マップ>

・GimpにNormalmap pluginをインストール

GIMP normalmap plugin :
http://code.google.com/p/gimp-normalmap/

1. 画面右側のFeatured downloads欄からgimp-normalmap-win32-1.2.2.zipをダウンロードする
2. zipファイルを展開
3. glew32.dll、libgdkglext-win32-1.0-0.dll、libgtkglext-win32-1.0-0.dllをC:\Program Files\GIMP-2.0\binフォルダにコピーする
4. normalmap.exeをC:\Program Files\GIMP-2.0\lib\gimp\2.0\plug-insフォルダにコピーする

・Gimpでノーマルマップ作成

1. 低い所(凹)を"黒"、高い所(凸)を"白"で塗ったハイトマップ(高低マップ)を作成する
2. Gimpの上部ツールバーのフィルタ(R) -> マップ(M) -> Normal Mapをクリックする
3. Previewを見ながらFilter,Scaleの値を設定する
4. 3D Previewで確認する(LightやObjectTypeを変更して確認する)
5. OKボタンを押してノーマルマップを作成し、ファイル(F) -> 名前を付けて保存する(A)で保存する

gimp_normalmap.png

gimp_normalpreview3d.png

・メタセコイアでの設定

concavo-convex01.png

材質設定の凹凸の所にノーマルマップを参照させる
メタセコイアの標準レンダラでは、凹凸が反映されないので、Parthenon Renderer、vidroなどの外部レンダラでレンダリングする

・今回作ったオブジェクト
bridge04.png
・補足

ノーマルマップは、レンガとか壁で使うといいかも
高密度なポリゴンモデルから法線マップを作って低ポリゴンに適応させるといいらしいです、実際にどう使ってるのかよく分からなかったのでまた調べてみます

・参考URL

Aether 「哀愁の昼休みモデラー」のブログ : 法線マップを使ってみる
http://aether5th.blog40.fc2.com/blog-entry-44.html
WebOS Goodies : GIMP の Normalmap プラグインを試す
http://webos-goodies.jp/archives/50572696.html

テーマ : 3DCG
ジャンル : コンピュータ

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。