프로그래밍/Flex/AIR2008.06.25 00:51
http://www.rozengain.com/?postid=33
검색하다 찾은 소스

private var rootNode:DisplayObject3D;


.. {
// create a new scene and use the container
scene = new Scene3D( container );

// add a root node to the scene
rootNode = scene.addChild( new DisplayObject3D("rootNode") );

// create a textured cube
var cubeTexture:Bitmap = new CubeTexture() as Bitmap;
var cubeMaterials:MaterialsList = new MaterialsList();
cubeMaterials.addMaterial( new BitmapMaterial( cubeTexture.bitmapData ), "all" );
rootNode.addChild( new Cube( cubeMaterials, 200, 200, 200, 1, 1, 1 ), "myCube01" );

// create another textured cube
var psychedelicTexture:Bitmap = new PsychedelicTexture() as Bitmap;
var cube2Materials:MaterialsList = new MaterialsList();
cube2Materials.addMaterial( new BitmapMaterial( psychedelicTexture.bitmapData ), "all" );
var myCube02:DisplayObject3D = rootNode.addChild( new Cube( cube2Materials, 200, 200, 200, 1, 1, 1 ), "myCube02" );
// position the cube
myCube02.moveForward( 600 );
myCube02.moveRight( 600 );
}
private function loop3D( event:Event ):void {
            // get the references to our objects
            var myCube01:DisplayObject3D = rootNode.getChildByName( "myCube01" );
            var myCube02:DisplayObject3D = rootNode.getChildByName( "myCube02" );
           
            // move them
            if( myCube01 != null ) {
                myCube01.rotationX++;
                myCube01.rotationY++;
            }
           
            if( myCube02 != null ) {
                myCube02.rotationX++;
                myCube02.rotationZ++;
            }
           
            // rotate the root node
            rootNode.rotationY++;
            // render the camera to see the changes
            scene.renderCamera( camera );
}

즉, scene은 공간이고
그  scene에 rootNode 를 생성하고
rootNode 에 child 들을 붙여서, 하나의 연결고리를 형성한다.
rootNode를 회전시키면 그 자식들 또한 회전된다.

이해만 했는데 직접 돌려보긴 해야겠다. 밤이 늦었음..
이라고 썼지만.. 궁금해서 해봤다. 역시 생각대로 그렇게 돌아가고 있다.


Posted by 시난
프로그래밍/Flex/AIR2008.06.25 00:39
http://www.rozengain.com/?postid=33

Basic shapes, movement and segments에 대해 설명하고 있습니다.
Posted by 시난
프로그래밍/Flex/AIR2008.06.25 00:36
http://www.insideria.com/2008/05/textures-wireframe-bitmap-movi-1.html
Posted by 시난
프로그래밍/Flex/AIR2008.06.25 00:25
프로그래밍/Flex/AIR2008.06.24 23:52
[오늘 목표]
- 기본 프리미티브들과 매트리얼을 숙지한다.
- 카메라의 다른 종류가 있는지 살펴본다.

1. 프리미티브
plane, cube, sphere, cylinder, cone, paticle field 등이 있다.

plane - 하나의 판대기라고 생각하면 된다. 텍스쳐를 입히면 공간에 있는 사진이 되는 것이다.
cube - 정육각형, 6면에 텍스쳐를 입힐 수 있다. MaterialsList를 사용한다.
sphere - 구
cylinder - 원통
cone - 깔대기
paticle field - 우주를 구현할 때 가상의 별 공간으로 만들 수 있을 것 같다.
아니면, 다른 곳에 쓸 곳이 있으려나?
파티클 하나하나 제어할 수 있는지는 더 살펴봐야 겠다.

2. 카메라
Camera3D, FreeCamera3D, FrustumCamera3D 3종류가 있는 것을 확인했다.

기본 Camera3D 를 생성할 때 type이 0, 1에 따라
hover에 영향을 미치는데 정확히 무슨 차인지는 비교해봐야 겠다.
기본 적으로 볼 대상을 지정할 수 있다.
또는 포커스 거리를 맞출 수 있다.
x,y 등 변수를 저장해서 움직일 수도 있다.

FreeCamera3D는 제 맘대로 제어할 수 있는 것이고.

FrustumCamera3D 는 GreatWhite에서 추가된 카메라로
그냥 예전 OpenGL의 그 Frustum이 되는 카메라다.

        public static const NEAR:uint     = 0;
        public static const LEFT:uint     = 1;
        public static const RIGHT:uint     = 2;
        public static const TOP:uint     = 3;
        public static const BOTTOM:uint = 4;       
        public static const FAR:uint     = 5;

변수가 있어서 가까운 거리, 먼 거리 등을 지정하면
조금 더 효율적으로 오브젝트들을 표현할 수가 있을 것이다.

[기타 슥듭]
1. org.papervision3d.view.BasicView
래퍼 클래스가 이미 있었다.
Flex에서 그냥 UIComponent 를 컨테이너로 사용하고 거기에 뿌려줄 때 편히 쓸 수 있다.

2. 기본 매트리얼 숙지
- 와이어프레임 : 그냥 기본 와이어 프레임 (점과 선으로 표현됨) 이다.
- 칼러: 그냥 색 있는 면을 만들 때 쓰는 것이고
- BitmapFileMaterial: 기본 텍스쳐라고 생각하면 된다. 가장 많이 쓸 듯.
- MovieAssetMaterial: 플래시 쪽 작업하는 사람은 쉽게 알 것 같은데..
플렉스에선 어떻게 사용하는지 모르겠다. assets에 등록하고 쓰면 되려나.. -_-; (숙제)
기타: doubleSided 라는 매트리얼 속성은 기본적으로 한 면만 볼 수 있는 속성 값을 바꿔서
카메라 벡터에 상관없이 볼 수 있게 하는 것이다. CCW, CW 에 상관없이.

3. Tweener 맛보기
- Tweener.addTween(cube, {x:Math.random()*2000 - 1000, y:Math.random()*2000 - 1000, z:Math.random()*2000, time:.5, transition:"easeInOutQuint"});
이런 식으로 사용한다는..
Flex의 Move 이펙트랑 비슷하다고 보면 된다.
cube라는 객체의 x, y,z를 주어진 값으로 변화시킨다.
time: 0.5 sec 안에
easeInOutQuint 스럽게

4. Multi Viewport 가능 확인
여러개의 뷰포트를 등록해서 사용할 수 있는 것을 확인했다.


[남은 목표]
- 좌표공간, scene과 children과의 관계 완벽 이해, scene에 scene을 추가할 수 있는지?
- PNG 파일을 Height Map으로 사용하여 지형을 생성해본다. (와이어프레임)
- 3번 과정을 텍스쳐를 입혀 완벽한 지형으로 작성한다. (Terain)
- 이미지를 동적으로 로드하여 여러개의 오브젝트의 텍스쳐로 사용해본다.
=> http://www.nabble.com/Dynamic-image-loading-td17989140.html
- MovieAssetMaterial을 Flex에서 사용하는 방법 알아보기
=> http://www.nabble.com/MovieClip-image-loaders...-td17924994.html
- swf 재생하기
=> http://www.nabble.com/problem-loading-a-swf-file-into-a-plane-papervision-2.0-td14927921.html
- Light 이해
- Blur Effect 사용해보기



Posted by 시난
분류없음2008.06.24 22:55
http://blog.makemepulse.com/2007/06/28/tutorial-simple-360-panorama-with-papervision-in-as2/


이런식으로 만들면 된다.
Posted by 시난
프로그래밍/Flex/AIR2008.06.22 23:44
목표 1.  PV3D 2.0을 익힌다.
1. http://papervision2.com/tutorial-list/ 을 참고로 학습

목표 2. Papervision3D 2.0 관련되서 소스를 다운 받는다.
1. http://tortoisesvn.tigris.org/ 에서 거북이 svn을 다운로드,
2. 체크아웃 : http://papervision3d.googlecode.com/svn/trunk/branches/GreatWhite/src

목표 3. 간단한 래퍼 클래스를 만든다.
1. PaperBase.as 만들어
뷰포인트, 카메라 등을 기본적으로 생성하여 사용하는 것을 익힘

목표 4. PaperBase.as를 사용
각종 초기화를 하고 간단한 오브젝트를 화면에 올려봄.
매트리얼 개념, 오브젝트 개념, 오브젝트과 상호작용등을 파악한다.
-> 오브젝트의 매트리얼에 상호작용 설정을 하여 작동한다는 것을 파악.

목표 5. 프리미티브, 매트리얼등을 간단히 사용해본다.
1.  기본 매트리얼들을 사용해봄

목표 6. Collada 등을 사용해본다.
1. 기본 모델링을 위한 정보를 사용해봄. (추후에 MAX에서 익스포트 해본다)


== 오늘 학습 일지 끝.. ==

앞으로 학습할 것
- 기본 프리미티브들과 매트리얼을 숙지한다.
- 카메라의 다른 종류가 있는지 살펴본다.
- PNG 파일을 Height Map으로 사용하여 지형을 생성해본다. (와이어프레임)
- 3번 과정을 텍스쳐를 입혀 완벽한 지형으로 작성한다.
- 이미지를 동적으로 로드하여 여러개의 오브젝트의 텍스쳐로 사용해본다.


다음 학습 관련 링크 : http://www.madvertices.com/2008/01/papervision-3d-training-videos.html


Posted by 시난
리뷰/웹사이트2008.06.21 14:19
휴일을 맞이하여, 게임도 충분히 했고 -_-;
유익한 블로그를 만들기 위해 메뉴들도 정비했고
Papervision3D에 대한 공부를 시작하고 있습니다.

그러던 중 괜찮은 매쉬업을 발견했네요.

 http://taggalaxy.de/

1. tag를 입력
사용자 삽입 이미지

2. tag 로 이루어진 행성들이 은하계 처럼 보여집니다.
사용자 삽입 이미지


3. 관심있는 tag 행성을 클릭하면
4. 그 행성 표면을 플리커에서 가져온 이미지들로 멋지게 장식해주죠.
 (예전에 papervision3d 예제 중에 영어 단어가 기억이 안 나는데.. 색종이? 어쩌고.. 그런 예제가 있었는데
그걸 보고 저도 해보고 싶었죠.. 바로 이런 것을!! )
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

비록 PicLens(http://www.piclens.com/) 처럼 빠르진 못하지만, (플래시의 태생 문제죠. 10부터는 슬슬 업그레이드 되고 있지만..)
플래시/Papervision3D로 멋진 3D 인터페이스를 보여줍니다. ^^






'리뷰 > 웹사이트' 카테고리의 다른 글

XING - 전세계 비즈니스맨 SNS  (0) 2008.08.08
WISIA - The Wisdom of crowds  (1) 2008.08.08
iTunes  (2) 2008.07.22
Lively by Google - test  (0) 2008.07.14
[flex] Brainwave를 소개합니다.  (0) 2008.06.21
[flash/papervision3d] Tag Galaxy를 소개합니다.  (2) 2008.06.21
Posted by 시난