OpenSocial API リファレンス
上のページのこの部分。
Object value - 更新する値です。有効な josn である必要があります。josnじゃなくてjsonだと思ふ。他のところはjsonって書いてあるし。
それだけ。
Object value - 更新する値です。有効な josn である必要があります。josnじゃなくてjsonだと思ふ。他のところはjsonって書いてあるし。
a fix is to change the shadercomposition mode to per_tri on the shader. This will be slower but remove the seams.意訳すると、「シェーダーのshadercomposition modeをper_triにすれば、重くなるけど線消えるよ。」って感じでしょうか?
public static var PER_LAYER:int = 0; public static var PER_TRIANGLE_IN_BITMAP:int = 1;per_triというのは、おそらくこのPER_TRIANGLE_IN_BITMAPのこと。
var material:ShadedMaterial = new ShadedMaterial(bitmapmaterial, shader, 1);という風に記述しました。3つ目の引数がshaderCompositeModeです。
var myMaterials:Object = { material_2_1_8_image: new BitmapMaterial(material0.bitmapData), material_3_2_8_image: new BitmapMaterial(material1.bitmapData), material_4_3_8_image: new BitmapMaterial(material2.bitmapData), 中略 material_28_37_8_image: new BitmapMaterial(material35.bitmapData), material_22_38_8_image: new BitmapMaterial(material36.bitmapData), material_0_23_8_image: new BitmapMaterial(material37.bitmapData) } var daeObject:DAE = new DAE(); daeObject.load(XML(new daeFile()), new MaterialsList(myMaterials)); scene.addChild(daeObject);Object型は文字『-』を使うとエラーが出たので、Colladaファイルの『-image』を『_image』に置換してました。
var myMaterials:MaterialsList = new MaterialsList(); myMaterials.addMaterial(new BitmapMaterial(material0.bitmapData), "material_2_1_8-image"); myMaterials.addMaterial(new BitmapMaterial(material1.bitmapData), "material_3_2_8-image"); myMaterials.addMaterial(new BitmapMaterial(material2.bitmapData), "material_4_3_8-image"); 中略 myMaterials.addMaterial(new BitmapMaterial(material35.bitmapData), "material_28_37_8-image"); myMaterials.addMaterial(new BitmapMaterial(material36.bitmapData), "material_22_38_8-image"); myMaterials.addMaterial(new BitmapMaterial(material37.bitmapData), "material_0_23_8-image"); var daeObject:DAE = new DAE(false); daeObject.load(XML(new daeFile()), myMaterials); scene.addChild(daeObject);訂正版はコンパイルしたわけではないので、もしかしたらエラーが出るかも・・・
package { import flash.display.Bitmap; import flash.events.Event; import flash.geom.Point; import flash.geom.Rectangle; import org.papervision3d.core.utils.InteractiveSceneManager; import org.papervision3d.core.utils.Mouse3D; import org.papervision3d.core.utils.virtualmouse.VirtualMouse; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.materials.shaders.PhongShader; import org.papervision3d.materials.shaders.ShadedMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.view.BasicView; [SWF(backgroundColor="#ffffff")] public class sample_bump extends BasicView { // ヴァーチャルマウス private var vMouse:VirtualMouse; // 球(月) private var sphere:Sphere; // 月のバンプマップ埋め込み [Embed(source="moonbump1k.jpg")] private var bumpImage:Class; private var bumpMap:Bitmap = new bumpImage() as Bitmap; // シェーダー private var shader:PhongShader; /* constructor */ public function sample_bump() { super(640, 480, true, true,"Target"); // カメラ設定 camera.x = 0; camera.y = 0; camera.z = 400; camera.focus = 1000; camera.zoom = 1; vMouse = viewport.interactiveSceneManager.virtualMouse; Mouse3D.enabled = true; /* 背景画像は画像を貼り付けたPlane(平面)を球(月)の奥に設置している */ // 背景画像埋め込み [Embed(source="000191_m.jpg")] var wallpaper:Class; var wp:Bitmap = new wallpaper() as Bitmap; var star:BitmapMaterial = new BitmapMaterial(wp.bitmapData); star.doubleSided = true; star.smooth = true; var wall:Plane = new Plane(star, 1024, 681); wall.z = -200; scene.addChild(wall); // 月の画像埋め込み [Embed(source="moonmap1k.jpg")] var texture:Class; var tex:Bitmap = new texture() as Bitmap; // ライト設定 var light:PointLight3D = new PointLight3D(); light.x = 0; light.y = 200; light.z = 500; scene.addChild(light); var bmpMat:BitmapMaterial = new BitmapMaterial(tex.bitmapData); shader = new PhongShader(light, 0xFFFFFF, 0x666666, 50, bumpMap.bitmapData, tex.bitmapData); var material:ShadedMaterial = new ShadedMaterial(bmpMat, shader); material.smooth = true; material.interactive = true; sphere = new Sphere(material, 100, 16, 12); scene.addChild(sphere); startRendering(); } // バンプマップ埋め込み [Embed(source="bump.png")] private var craterImage:Class; private var crater:Bitmap = new craterImage() as Bitmap; private function meteor():void { // バンプマップ合成 bumpMap.bitmapData.merge(crater.bitmapData, new Rectangle(0, 0, crater.width, crater.height), new Point(vMouse.x*1000 - crater.width/2, vMouse.y*500 - crater.height/2), 128, 128, 128, 128); // バンプマップ更新 shader.bumpmap = bumpMap.bitmapData; } override protected function onRenderTick(event:Event=null):void { // 回転 sphere.yaw(0.25); if(InteractiveSceneManager.MOUSE_IS_DOWN) { meteor(); } super.onRenderTick(event); } } }