article search result of 'Rectangle' : 2

  1. 2010.12.04 [Texture2D] Texture2D에 일정역역만 복사하기 (40)
  2. 2010.12.04 [XNA Rectangle on 3D] 사각형을 그려보자 (제발) (250)

[Texture2D] Texture2D에 일정역역만 복사하기



원본 텍스쳐에서 일부분만 그리는 방법에서 기초적인 방법은 Draw 에서

그릴 영역을 지정하는것인데 리소스 낭비가 발생할수 있어서

아에 처음부터 영역을 정하고 들어가도록 하는 방법이다.

Created with colorer-take5 library. Type 'csharp'

//http://scripter.egloos.com
        //원본 이미지 텍스쳐
        Texture2D targetTx;

        //복제할 이미지 텍스쳐
        Texture2D copyTx;
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            //원본 이미지를 가져��다
            targetTx = Texture2D.FromFile(GraphicsDevice,@"c:\a.jpg");

            //복제할 이미지를 만든다.
            copyTx = CloneImage(targetTx, 0, 0, 200, 200);
        }


        //복제 메소드 :: 매개변��로는 원본이미지,좌표,크기 이다. 
        public Texture2D CloneImage(Texture2D image, int x, int y, int w, int h)
        {
            //면적을 만든다.
            Rectangle srcRect = new Rectangle(x, y, w, h);

            //면적만큼�� 바이트 배열을 생성한다
            // *4 인이유는 ���� 정���� 메모리 크기가 4바이트이기때문은 상식
            byte[] data = new byte[srcRect.Width * srcRect.Height * 4];
            
            //원본이미지에서 면적만큼 가져와 바이트배열에 저장한다.
            image.GetData(0, srcRect, data, 0, data.Length);
            
            //새로운 텍스쳐를 생성한다.
            //주��할점은 TextureFormat을 원본이미지�� Format과 같게해야 된다.
            Texture2D result = 
                new ResolveTexture2D(this.GraphicsDevice, srcRect.Width, srcRect.Height, 0, image.Format);
            
            //데이터를 채워주고..
            result.SetData(data);
            
            //����한다.
            return result;
        }
 
 
 
참고 :: http://xna.omgsoft.com.cn/education/graphicex_class.aspx


중요한점은 복제될 Texture2D의 Format  과 원본 Texture2D 의 Format 이 일치해야 되더라



Yamecoder 야매코더_
XNA 2010.12.04 02:30

[XNA Rectangle on 3D] 사각형을 그려보자 (제발)



우선 목표는 이러하다 , 사각형의 중심을 원점 으로 한 3d 상의 사각형을 만들것이다.

그리고 텍스쳐도 입혀 보자.

이목표를 실현 하기 위해서는 어느정도의 준비 과정이 필요하다. 바로 카메라의 셋팅이다.

물론 기본적으로 생성되어 있지만 3D 물체를 제대로 볼수가 없다.


Game1.cs


코드는 간단하나 워낙 단어들이 길어서 따로 주석을 포함한 소스코드를 참고 할것.
Yamecoder 야매코더_
XNA 2010.12.04 02:16
Powerd by Tistory, designed by criuce
rss