SQLの窓 イラストAC フリー素材

2012年10月31日

Windows Phone 8 のエミュレータのコンテンツ


Windows Phone 8 のエミュレータのコンテンツがたくさん増えています。内容はまだ確認できていませんが、デバッグにバリエーションが増えそうです。( 以前はブラウザしか無かったので )

今日10台ほど Windows Phone8 のSDK をインストールしました。なのでまだあまり動作確認できておらず。ノーマルテンプレートの動作確認と Windows Phone 7.1 で作成していたものをそのまま使える事を確認しました。

が、Windows8 で使っている SDK である HttpClient が使えていません。参照等でどうにかなるのかなどのテストは時間が足らずにできていません。これらは来週に持ちこす事になってしまいました。

あと、Windows Phone 7.5 の実機は認識してくれなかったようです。


posted by at 2012-10-31 20:21 | オワコン | このブログの読者になる | 更新情報をチェックする

2012年10月28日

Three.js の WebGL+Canvas の実行サンプル / 二平面とローポリゴン 3D モデル

SkyDrive へ移動



いずれも、FlyControl を改造したコントロールを実装しています。
※ オレンジ部分をマウスカーソルで押しつづけるか、キーで操作するかです。

※ Three.js は、49〜52 までを同梱しています。
※ スライダーには jQuery を使用しています。

Three.js は、49 と 50 間で大きな仕様変更があったので、いろいろな動作確認の為に4種類入っています。

特に、Blender で作成される Three.js 用の 3D モデル用のファイルは、49と50で処理が変更されて、画像を反転させないと正しく表示されませんでした。それぞれのバージョンのスクリプトで作成すれば問題は出ません。

また、ColladaLoader を使って Dae をロードする場合、50 以降ではテクスチャが二つ以上だと正しく描画されないようです。( 49 を使うと動作しますが、バージョン毎に違うので同じバージョンのものを使う必要があります )



サンプルパターン

1) slider_webgl.htm
2) slider_canvas.htm

単純な二平面ですが、webgl では裏側は Light が対象となるマテリアルを使用しています。また、IEWebGL をインストールすると、IE でも動作します。基本的には、Google Chrome と Firefox で動作しますが、Firefox のみが ローカルでも動きます( Firefox の特徴 )。それ以外はローカルに Webサーバーが必要となります。




サンプルパターン

1) slider_webgl.htm
ライトが関与するようにしています。

2) slider_canvas.htm
Canvas では ライトは使えません

3) slider_webgl_dae.htm
ライトが関与しますが、XML データを書き換えて自己発光になるようにコードを書いています

こちらでも、IEWebGL をインストールすると、slider_webgl 動作しますが、IE では ColladaLoader が使えません( XML 処理で、IE では使えないメソッドを使っているからです )

posted by at 2012-10-28 01:47 | Three.js | このブログの読者になる | 更新情報をチェックする

2012年10月27日

DAZ3D のショートカットがある日突然全て消えた・・・ので

Edit の Customize から開くこのダイアログの Default ボタンで戻りました。



というか、DAZ3D 何起こるか解らないなぁ。



posted by at 2012-10-27 00:08 | DAZStudio | このブログの読者になる | 更新情報をチェックする

2012年10月25日

IE でも WebGL が動く方法 : Three.js と IEWebGL で ページを書く手順。


(1) : ヘッダ( head要素内 )



IE では、開発者ツールが開いていないと、console.log がエラーになるので先に実装しておいて、IEWebGL を使う為の基本ツール(webglhelper.js)を『必要な時だけ読みだす』ようにしています。

(2) : Three.js を展開する部分への実装



通常ならば、container_three 内に展開されるのですが、IEWebGL の場合オブジェクトなので、代替えとして埋め込む為に、container_three 内 にスクリプトを書いています。ここでは、renderCanvas と言う名前で代替えエリアを作成して後でその部分を使うように記述します。また、ie 以外でも WebGL が使えないブラウザの為に、描画エリアとしてのこの場所にメッセージを表示するようにしています。

(3) : いろいろチェック



ちょっと不自然なコードですが、WebGLRenderingContext.hasOwnProperty('iewebgl') の挙動が一様では無かったので結果的にこうなってしまいました。もっと良い書き方があると思いますが、IE だけの為に努力しても仕方無いのでこれでいいと思います。

※ init と animate は、Three.js の開始部分です

(4) : 一番重要な部分



通常では無い対象エリアである、renderCanvas を Three.js に認識させる部分です。エリアの実装の仕方にもよりますが、本来のエリアが邪魔して renderCanvas が下のほうにズレてしまうので、強引に div を非表示にしている部分がありますが、ここは将来的には調整が必要になるかもしれません( Three.js はやたらと仕様変更があります )


関連する記事

Three.js(51) でPlane(平面)。IEWebGL をインストールすると IE でも動くサンプル





posted by at 2012-10-25 22:49 | Three.js : その他 | このブログの読者になる | 更新情報をチェックする

2012年10月24日

普通に組み上げただけなのに異様にかっこよくなった『Anwyn Warrior』

肌の色と赤い目がとてもマッチしていて、普通に X-MEN に出て来そうです。顔は V4 に Anwyn を適用しているだけで( 専用の顔変形は使用していません ) V4 ノーマルです。本来はここから調整するんですが、目の色を変えただけでハマりました。時間かかったのは髪の毛が長いのでそこの不自然さの調整と、パンツのフィットです。下半身は表示されてませんけれど、その部分が一番時間かかりました。のちのちいろいろレンダリングしたいですね。



Anwyn for V4 & Genesis

このパーツは、モーフやスキンで、髪の毛や衣装は付いていません。ですけれど、お買い得だと思います。V4 のノーマルのスキンはヘボいので、これ一つで格段に違います。

そもそも、Victoria 4.2 Female 3D Model Morphs++ が必要ですが、このモーフとの連動効果で筋肉質はとてもいい感じ。

衣装は、パンツが Nighthawk for V4 で、グローブが、Tevireth で、胸部分が The Sentry 3D Character Model です。

髪は、Gregoria Hair ですが、思ったより美しくレンダリングされます( アイコンとか結構最低なんですけれど )


タグ:DAZ3D
posted by at 2012-10-24 01:05 | DAZ3D プロダクト | このブログの読者になる | 更新情報をチェックする

2012年10月20日

また、DAZ で 100% OFF の出物。でも・・・使う場所はほぼ無いと言っていい。

Hat Hat Hat...

とは、言うものの唯一頭に浮かんだ風景があったのでダウンロードしましたが、フィットが手動なので苦労しました・・・・。後、その風景にはまさにうってつけの、最近覚えたばかりの『影』の効果を試してみました。



影のパラメータには2種類あって、雑なものとしっかりレンダリングされるもので、当然時間差が出るそうですが、この程度ではあまり大差なかったです。



でも、これは帽子があるから意味あるけれど、たいていにおいてあんまり必要無いような気もします。というか、ライティングが難しくなるので、ここ一番必要な時以外は使わないほうがいいような。なんか、3D のレンダリング結果というのは、精密になればなるほど主人公の印象が薄れるような気がします。プロでお金取るなら別だけれど、素人的には漫画等のイラストなアバウトなほうがコストパフォーマンスいいような気がします。というか、これだけでも基本キャラ作成以外で数時間かかってますし。

※ 殆ど表情と Actor 微調整に時間が・・・


タグ:DAZ3D
posted by at 2012-10-20 01:29 | DAZ3D | このブログの読者になる | 更新情報をチェックする

2012年10月16日

Three.js(51) でPlane(平面)。IEWebGL をインストールすると IE でも動くサンプル



いまんとこ、Firefox が一番問題が少ないです。Google Chrome はわりと何か起きます。ま、でも、基本的に開発している人(Three.js)が Google Chrome をターゲットにしてるぽいので、殆どは Chrome でテストしています。

Opera Next は結構悲惨な状態で、IE は IEWebGL をインストールすれば動きます。Firefox は、ローカルの file:///C: でも動くので凄いです。

でも、Canvas バージョンなら全てのブラウザで動きますし、Canvas なら Windows8 でビルドできます(動作というか信頼性はまだあまりアテにならないですけれど)。

WebGLバージョンはこちらから
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Plane / three / WebGL</title>

<style type="text/css">
* {
	font-size: 12px;
}
body {
	margin: 0;
	background-color: #ffffff;
}

a {
	color: navy;
}

#container_three {
	width: 1000px;
	height: 600px;
	border: solid 1px #ccc;
	margin-left: 50px;
	background-color: #eee;
}
#message {
	position: absolute;
	left: 0px;
	top: 0px;
	color: red;
	font-size: 20px;
}
</style>

<link rel="stylesheet" href="../jquery/jqcss/black-tie/jquery-ui-1.8.20.custom.css" type="text/css" />
<script type="text/javascript" src="../jquery/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../jquery/jquery-ui-1.8.20.custom.min.js"></script>
<script type="text/javascript">
// *********************************************************
// IE 用
// *********************************************************
if(!window["console"]){window["console"]={};window["console"]["log"]=function(){}}
if ((window.navigator.userAgent.toLowerCase()).indexOf("msie") > -1) {
	(function(){
		var str="";
		str+="<"+"script type=\"text/javascript\" src=\"../three/webglhelper.js\"></"+"script> ";
		document.write(str);
	})();
}
</script>

</head>
<body>

<div style='position:absolute;left:60px;top:34px;'>
<input id="dragToLook" type="checkbox" onclick='controls.dragToLookStop = !this.checked;'> チェックするとドラッグで FLY
</div>

<div style='position:absolute;left:280px;top:40px;'>Y軸回転</div>
<div id="slider-r-y" style='position:absolute;left:350px;top:40px;width:200px;'></div>

<div style='position:absolute;left:16px;top:225px;'>X軸</div>
<div id="slider-r-x" style='position:absolute;left:20px;top:250px;height:200px;'></div>
<br /><br />

<div id="container_three">
<script id="WebGLCanvasCreationScript" type="text/javascript">
var container = document.getElementById( 'container_three' );
var WebGL_chk;
if ((window.navigator.userAgent.toLowerCase()).indexOf("msie") > -1) {
	WebGLHelper.CreateGLCanvasInline('renderCanvas');
}
else {
	WebGL_chk = ( function () { try { return !! window.WebGLRenderingContext && !! document.createElement( 'canvas' ).getContext( 'experimental-webgl' ); } catch( e ) { return false; } } )();
	if ( !WebGL_chk ) {
		container.innerHTML = "<div id='message' style='postion:absolute;left:100px;top:350px;color:#FF0000;font-size:50px;'>WebGL が使用できません</div>";
	}
}
</script></div>


<script type="text/javascript" src="../three/Three_51.js"></script>
<script type="text/javascript" src="../three/FlyControls_lightbox.js"></script>


<script type="text/javascript">
// *********************************************************
// 共通
// *********************************************************
var camera, scene, renderer;
var mesh,mesh2;
var w = 1000;
var h = 600;
var controls;
var clock;
var data_target  = '001.png';
var data_target2 = '002.png';

var parent;

// *********************************************************
// キーアクション呼び出し用
// *********************************************************
function control_update() {
	controls.updateMovementVector();
	controls.updateRotationVector();
}

// *********************************************************
// Opera 用
// *********************************************************
if( !XMLHttpRequest.DONE ) {
	console.log("setting");
	XMLHttpRequest.prototype.DONE = 4
	XMLHttpRequest.prototype.HEADERS_RECEIVED = 2
	XMLHttpRequest.prototype.LOADING = 3
	XMLHttpRequest.prototype.OPENED = 1
	XMLHttpRequest.prototype.UNSENT = 0
}

// *********************************************************
// jQuery スライダー
// *********************************************************
$(function () {
	// スピン回転用スライダー
	$("#slider-r-y").slider({
		range: "min",
		step: 0.01,
		min: 0,
		max: Math.PI * 2,
		value: 0,
		slide: function (event, ui) {

			parent.rotation.y = ui.value;

//			mesh.rotation.y = ui.value;
//			mesh2.rotation.y = ui.value + 180 * Math.PI / 180;
		}
	});
	// 縦回転用スライダー
	$("#slider-r-x").slider({
		orientation: "vertical",
		range: "min",
		step: 0.01,
		min: 0,
		max: Math.PI * 2,
		value: Math.PI / 32,
		slide: function (event, ui) {
		
			parent.rotation.x = ui.value;

//			mesh.rotation.x = ui.value;
//			mesh2.rotation.x = ui.value;
		}
	});
});

if ( !WebGL_chk ) {
	var usePlugin;
	try {
		usePlugin = WebGLRenderingContext.hasOwnProperty('iewebgl');
	} catch (e) {
		usePlugin = true;
	}
	if ( usePlugin ) {
		init();
		animate();
	}
	else {
		container.innerHTML = "<div id='message' style='postion:absolute;left:100px;top:350px;color:#FF0000;font-size:50px;'>WebGL が使用できません</div>";
	}
}
else {
	init();
	animate();
}

// *********************************************************
// 初期処理
// *********************************************************
function init() {

	clock = new THREE.Clock();

	// *************************************************
	// シーン
	// *************************************************
	scene = new THREE.Scene();
	scene.position.y = 0;
	scene.position.x = 0;

	// *************************************************
	// カメラ
	// *************************************************
	camera = new THREE.PerspectiveCamera( 50, w / h, 1, 10000 );
	camera.position.set( 0, 0, 650 );
	scene.add( camera );

	// *************************************************
	// キーボードコントロール
	// *************************************************
	controls = new THREE.FlyControls( camera );
	controls.movementSpeed = 120;
	controls.domElement = container;
	controls.rollSpeed = Math.PI / 48 * 2;
	controls.dragToLook = true;
	controls.object.useQuaternion = true;

	parent = new THREE.Object3D();
		
	// *************************************************
	// データの読み込み
	// *************************************************
	var image = new Image()
	image.onload = function () {

		var texture = new THREE.Texture( this );
		texture.needsUpdate = true;
		var material = new THREE.MeshBasicMaterial({map: texture, overdraw: true});

		// 平面表
		mesh = new THREE.Mesh(new THREE.PlaneGeometry(350, 400, 5, 5), material);
		mesh.rotation.x = 0;
		mesh.rotation.y = 0;
		// 	scene.add(mesh);
		parent.add( mesh );

	};
	image.src = data_target;

	var image2 = new Image()
	image2.onload = function () {

		var texture2 = new THREE.Texture( this );
		texture2.needsUpdate = true;
		var material2 = new THREE.MeshBasicMaterial({map: texture2, overdraw: true});

		// 平面裏
		mesh2 = new THREE.Mesh(new THREE.PlaneGeometry(350, 400, 5, 5), material2);
		mesh2.rotation.x = 0;
		mesh2.rotation.y = 180 * Math.PI / 180; // 180°( * Math.PI / 180 が固定 )
		// scene.add(mesh2);
		parent.add( mesh2 );
		
	};
	image2.src = data_target2;

	// *************************************************
	// 照明
	// *************************************************
	var directionalLight1 = new THREE.DirectionalLight( 0xffffff, 1 );
	directionalLight1.position.set( 0, 0, 300 ).normalize();
	scene.add( directionalLight1 );

	var directionalLight2 = new THREE.DirectionalLight( 0xffffff, 1 );
	directionalLight2.position.set( 0, 0, -500 ).normalize();
	scene.add( directionalLight2 );

	scene.add(parent);

	// *************************************************
	// 描画
	// *************************************************
	if ((window.navigator.userAgent.toLowerCase()).indexOf("msie") > -1) {
		container.getElementsByTagName("div")[0].style.display = "none";
		var externalCanvas = document.getElementById('renderCanvas');
		renderer = new THREE.WebGLRenderer({ 'canvas': externalCanvas, antialias: true });
	}
	else {
		renderer = new THREE.WebGLRenderer( { antialias: true } );
	}	
	renderer.setSize( w, h );

	// *************************************************
	// DIV に適用
	// *************************************************
	container.appendChild( renderer.domElement );

}


// *********************************************************
// アニメーションループ
// *********************************************************
function animate() {

	requestAnimationFrame( animate );
	render();

}

// *********************************************************
// 表示
// *********************************************************
function render() {

	var delta = clock.getDelta();
	controls.update( delta );
	renderer.render( scene, camera );

}
</script>
<style>
.desc {
	margin-left: 60px;
	margin-top: -10px;
}
.cont {
	cursor: pointer;
	background-color: orange;
}
#control_desc td {
	padding:4px;
	border: 1px solid;#888;
}
</style>
<div class="desc">
<br />
</div>

<pre>

<table id="control_desc" class="desc">
<tr>
<td 
	class="cont"
	onmousedown='controls.moveState.forward=1;control_update();'
	onmouseup='controls.moveState.forward=0;control_update();'
	onmouseout='controls.moveState.forward=0;control_update();'
	>W</td><td>前進</td>
<td 
	class="cont"
	onmousedown='controls.moveState.back=1;control_update();'
	onmouseup='controls.moveState.back=0;control_update();'
	onmouseout='controls.moveState.back=0;control_update();'
	>S</td><td>後退</td>
<td
	class="cont"
	onmousedown='controls.moveState.left=1;control_update();'
	onmouseup='controls.moveState.left=0;control_update();'
	onmouseout='controls.moveState.left=0;control_update();'
	>A</td><td>左移動</td>
<td
	class="cont"
	onmousedown='controls.moveState.right=1;control_update();'
	onmouseup='controls.moveState.right=0;control_update();'
	onmouseout='controls.moveState.right=0;control_update();'
	>D</td><td>右移動</td>
</tr><tr>
<td
	class="cont"
	onmousedown='controls.moveState.up=1;control_update();'
	onmouseup='controls.moveState.up=0;control_update();'
	onmouseout='controls.moveState.up=0;control_update();'
	>R</td><td>上移動</td>
<td
	class="cont"
	onmousedown='controls.moveState.down=1;control_update();'
	onmouseup='controls.moveState.down=0;control_update();'
	onmouseout='controls.moveState.down=0;control_update();'
	>F</td><td>下移動</td>
<td
	class="cont"
	onmousedown='controls.moveState.rollLeft=1;control_update();'
	onmouseup='controls.moveState.rollLeft=0;control_update();'
	onmouseout='controls.moveState.rollLeft=0;control_update();'
	>Q</td><td>左回転</td>
<td
	class="cont"
	onmousedown='controls.moveState.rollRight=1;control_update();'
	onmouseup='controls.moveState.rollRight=0;control_update();'
	onmouseout='controls.moveState.rollRight=0;control_update();'
	>E</td><td>右回転</td>
</tr><tr>
<td
	class="cont"
	onmousedown='controls.moveState.pitchUp=1;control_update();'
	onmouseup='controls.moveState.pitchUp=0;control_update();'
	onmouseout='controls.moveState.pitchUp=0;control_update();'
	>Y</td><td>同一視点上移動</td>
<td
	class="cont"
	onmousedown='controls.moveState.pitchDown=1;control_update();'
	onmouseup='controls.moveState.pitchDown=0;control_update();'
	onmouseout='controls.moveState.pitchDown=0;control_update();'
	>H</td><td>同一視点下移動</td>
<td
	class="cont"
	onmousedown='controls.moveState.yawLeft=1;control_update();'
	onmouseup='controls.moveState.yawLeft=0;control_update();'
	onmouseout='controls.moveState.yawLeft=0;control_update();'
	>G</td><td>同一視点左移動</td>
<td
	class="cont"
	onmousedown='controls.moveState.yawRight=1;control_update();'
	onmouseup='controls.moveState.yawRight=0;control_update();'
	onmouseout='controls.moveState.yawRight=0;control_update();'
	>J</td><td>同一視点右移動</td>
</tr><tr>
<td
	class="cont"
	onmousedown='controls.moveState.pitchUp=1;controls.moveState.down=1;control_update();'
	onmouseup='controls.moveState.pitchUp=0;controls.moveState.down=0;control_update();'
	onmouseout='controls.moveState.pitchUp=0;controls.moveState.down=0;control_update();'
	>O</td><td>対象物縦回転</td>
<td
	class="cont"
	onmousedown='controls.moveState.pitchDown=1;controls.moveState.up=1;control_update();'
	onmouseup='controls.moveState.pitchDown=0;controls.moveState.up=0;control_update();'
	onmouseout='controls.moveState.pitchDown=0;controls.moveState.up=0;control_update();'
	>L</td><td>対象物縦回転</td>
<td
	class="cont"
	onmousedown='controls.moveState.yawLeft=1;controls.moveState.right=1;control_update();'
	onmouseup='controls.moveState.yawLeft=0;controls.moveState.right=0;control_update();'
	onmouseout='controls.moveState.yawLeft=0;controls.moveState.right=0;control_update();'
	>K</td><td>対象物横回転</td>
<td
	class="cont"
	onmousedown='controls.moveState.yawRight=1;controls.moveState.left=1;control_update();'
	onmouseup='controls.moveState.yawRight=0;controls.moveState.left=0;control_update();'
	onmouseout='controls.moveState.yawRight=0;controls.moveState.left=0;control_update();'
	>;</td><td>対象物横回転</td>
</tr>
</table>
<div class="desc">
<b>▲ カメラの移動キーです</b>

<b style='font-size:14px;'>日本語入力状態になっているとキーが効かないので注意して下さい
( 上のオレンジのキーをマウスで長押しても動作します )</b>

※ 移動してからの回転は、回転の中心が変化します
※ キーの同時押しは有効です
</div>
</pre>

</div>


</body>
</html>

※ WEB上のコードは、一般 WEB 用に多少手を入れてあります



posted by at 2012-10-16 01:11 | Three.js : その他 | このブログの読者になる | 更新情報をチェックする

2012年10月15日

既存のスクリプトのシェーダーのパラメータを調整して、霧の箱を作りました

キューブは Blender から DAE でエクスポート。インポートして適用すると、プレビューでは透明になります。



しかし、レンダリングすると(やたら時間かかる)以下のようになっていい雰囲気です。



オリジナルは、大きな範囲では霧にはならず濃い雲のようになります。しかし、どうせ数値だけの事だろうと、かなり時間はかかりましたが調整可能でした。

で、これを利用したのが『Night Fog Gate』です。


DsActions.prototype.setMaterialProperties = function( oMaterial, oShape ){
	this.m_oElement = oMaterial;
	this.m_sMaterialType = "DzShaderMaterial";
	this.m_sMaterialName = "omUberVolume";
	this.prepareMaterial();
	g_oPresetHelper.setTargetElement( this.m_oElement );
	g_oPresetHelper.setNumericProperty( "UV Set",  [ 0 ] );
	g_oPresetHelper.setNumericProperty( "Smooth On",  [ 1 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Smooth Angle", true, 0, 180, [ 89.9 ] );
	g_oPresetHelper.setNumericProperty( "Render Priority",  [ 3 ] );
	g_oPresetHelper.setNumericProperty( "Propagate Priority",  [ 0 ] );
	g_oPresetHelper.setColorProperty( "Diffuse Color",  [ 210, 210, 210 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Opacity Strength", true, 0, 1, [ 0 ] );
	g_oPresetHelper.setNumericProperty( "Diffuse Active",  [ 1 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Diffuse Strength", true, 0, 1, [ 1 ] );
	g_oPresetHelper.setNumericProperty( "Ambient Active",  [ 0 ] );
	g_oPresetHelper.setColorProperty( "Ambient Color",  [ 0, 0, 0 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Ambient Strength", true, 0, 1, [ 0 ] );
	g_oPresetHelper.setNumericProperty( "Opacity Active",  [ 1 ] );
	g_oPresetHelper.setColorProperty( "Opacity Color",  [ 255, 255, 255 ] );
	g_oPresetHelper.setNumericProperty( "Fantom",  [ 0 ] );
	g_oPresetHelper.setNumericProperty( "Raytrace",  [ 1 ] );
	g_oPresetHelper.setNumericProperty( "Accept Shadows",  [ 1 ] );
	g_oPresetHelper.setColorProperty( "Color",  [ 255, 255, 255 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Density", true, 0, 0.1, [ 0.0050012 ] );
	g_oPresetHelper.setNumericProperty( "Volume Start",  [ 0.01 ] );
	g_oPresetHelper.setNumericProperty( "Volume End",  [ 1000 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Step Size", true, 0, 10, [ 1 ] );
	g_oPresetHelper.setNumericProperty( "Max Steps",  [ 374 ] );
	g_oPresetHelper.setColorProperty( "Scatter",  [ 255, 255, 255 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Strength", true, 0, 1, [ 1 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Detail", true, 0, 20, [ 12.8963 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Scale", true, 0, 200, [ 50.4005 ] );
	g_oPresetHelper.setNumericPropertyWithAttributes( "Contrast", true, 0, 20, [ 1.677 ] );
}

※ !UberVolume Cloud.dsa をコピーして作りました。


タグ:DAZ3D
posted by at 2012-10-15 03:27 | DAZStudio | このブログの読者になる | 更新情報をチェックする

Three.js(51) でPlane(平面)。但し、ブログで動作するのは Canvas のみ(画像が別ドメインでも動く)。★ Google Chrome ではスクロールバーが効かなくなるのでキーボードで。。。

Three.js の TrackballControls というのを使うと、簡単にドラッグで対象がグルグルするのですが( トラックボールで拡大・縮小 )、Google Chrome ではスクロールバーをマウスで動かせなくなりますし、そもそもマウスホイールが処理用になるので、スクロールはキーボードのみとなってしまいます。他のブラウザでは、スクロールバーをマウスで使えるようですが・・・・本当はブログ等のスクロールが必要なページに貼って処理するのは、使い方間違っているので仕方ありません。

ですが、他との比較がいろいろ必要で、 Three.js はバージョンによって注意すべき事が突然変わるので記録用でもあります。特に 49 と 50 の間で酷い仕様変更あったんですよ。まだまだ実用では無理のあるライブラリですが、使い勝手は解ってさえおればとても素敵なんです。

▼ 左ドラッグで回転、右ドラッグで移動、マウスホイールで拡大・縮小
続きを読む
posted by at 2012-10-15 01:56 | Three.js : ベーシック | このブログの読者になる | 更新情報をチェックする

2012年10月12日

DAZ3D の Saxon Ruins(environment)でテクスチャがぼやけてたので調整。後、Light と Renderパラメータを調整した変化





これでは解らないかもしれませんが、相当ぼやけていたので GIMP のフィルタの『シャープ』で加工しました。で、石に光が反射するのは不自然なので、Light を Specular 無しに変更。

加工前



加工後



さらに、Render Setting で Gain を増やして Render



で、最終的にいい雰囲気になる Gamma を減らしてこんな感じです。



ここまで来てやっと、石と石の間の影の雰囲気がいい感じです。

DAZ3D は、単純に言えば基本的な 3D モデルをポージングするだけですが、骨格を変更してキャラを作成してそれなりの服装と背景でライティングしてると途方も無く時間かかります。最近はシェーダーもいろいろテストしているのでもっともっとかかりそうです。そしてなにより・・・・DAZクオリティというか、トラブルが多すぎるのです。

ま、でも、出来上がるとかなりうれしいです。



タグ:DAZ3D
posted by at 2012-10-12 23:55 | DAZ3D | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX