article search result of '곰동' : 1

  1. 2010.12.04 [C# XNA][texture2D.Setdata] XNA에서 픽셀을 하나하나 다루어 보자. (364)

[C# XNA][texture2D.Setdata] XNA에서 픽셀을 하나하나 다루어 보자.

xna의 API 가 익숙하지 않았던때, 픽셀을 다루기 위해 C#의 기본 GDI를 이용해여
마샬링 하여 텍스쳐에 붙였다.

그런데,. 반전이.. zune hd 에서 사용할수 있는 네임스페이스가 극히 제한적이라..
Bitmap은 가져 오지 못한다.

그래서 텍스쳐하나당 한픽셀을 그려야 된다고 생각하자 말도안되는 리소스 낭비이다.
텍스쳐2D 와 Draw메소드를 엄청나게 사용해야되서, 도저히 용납할수 없는 코딩이 될것이다.


고민끝에,  ,.XNA짱인,.  곰동님에게 긴급 질문했다. 그리고 친절히 답해 주셨다.
http://blog.naver.com/fly33499  )



위의 그림처럼 하나의 Texture2D에 여러개의 setData를 이용해 픽셀들을 다룰수 있다.

드디어 2D 비트맵을 다룰수 있게 되었다 마치 bitmapData의 setPixel 처럼 자유롭다.

기본적인 사용법은 이러하다.

주석 위주로 보면 됨


Created with colorer-take5 library. Type 'csharp'

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace WindowsGame9
{
    public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;
        Texture2D tx;
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            graphics.PreferredBackBufferWidth = 272;
            graphics.PreferredBackBufferHeight = 480;
        }

        protected override void Initialize() { base.Initialize(); }
                
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
            tx = new Texture2D(GraphicsDevice, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);

            //픽셀����그리기 (레벨 , 위��(x좌표,y좌표,1,1), 컬러값  ~ )
            tx.SetData<Color>(0, new Rectangle(0, 0, 1, 1),new Color[]{Color.Black} ,0, 1, SetDataOptions.None);
            

            //응용! 면적 체우기 

            //화려한?컬러값을 위해 랜덤 함�� ��출
            Random r = new Random();
            Color c;

            //가로크기
            for (int i = 0; i < graphics.PreferredBackBufferWidth; ++i)
            {
                //세로크기
                for (int j = 0; j < graphics.PreferredBackBufferHeight; ++j)
                {
                    //랜덤 컬러
                    c = new Color(new Vector3(r.Next(i), r.Next(j), r.Next(3)));
                    //픽셀만들기 , 총 272 * 280 개 만큼 그린다.
                    tx.SetData<Color>(0, new Rectangle(i, j, 1, 1), new Color[]{ c } , 0, 1, SetDataOptions.None);
                }
            }
        }

        protected override void UnloadContent(){  }

        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
                this.Exit();
            base.Update(gameTime);
        }

        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            
            //시작��고 그리고 끝내고 는 기본.
            spriteBatch.Begin();
            spriteBatch.Draw(tx, new Vector2(0, 0), Color.White);
            spriteBatch.End();

            base.Draw(gameTime);
        }
    }
}

아직 깊게 봐야 할것이 많이 있지만, 우선 요것 가지고 쉽게 사용할수있도록
AS3 스타일로 클래스를 랩핑하면 매우 유용할듯하다.

원하는대로 Circle 이라던지 Line 이라던지 이제 루프만 잘 돌리면 된다.

다시한번 곰동님께 감사입니다~

※ zune hd의 해상도가 272 * 480 이라서 이러한 크기에서 테스트중..
 
Yamecoder 야매코더_
XNA 2010. 12. 4. 00:08

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. BlogIcon oakley vault 2014.01.23 01:38  수정/삭제  댓글쓰기

    단다"It's certainly delightful, " Olson believed. "It's type of discolored together with loads of hearth as well as beauty to barefoot jogging. Your sweetheart is convinced its very magnificent. "It says fantastic not to mention may advance your own spirits, " shows Dassanayake, your local in Sri Lanka together with a 20-year Kia frequent along with a PhD for energy technological innovation. "Lighting를버

  3. BlogIcon ralph lauren 2014.01.23 04:13  수정/삭제  댓글쓰기

    에로As a result tone modification, clinical doctors are generally struggling to perform a particular in-office urinalysis. The conventional urine test out for just a UTI necessitates determining large regarding urine, which in turn is not to be accomplished any time Azo differences the nation's colouring. beats headphones This is why, various industry professionals would suggest storing away chanel ou고할

  4. BlogIcon hogan outlet 2014.01.23 04:48  수정/삭제  댓글쓰기

    다를4. Take care of these rodents: Without an important feline, not many light beer put in any suitable container might help handle the sensitive mouse trouble, particularly when you would like to trap killing of mice within the gentle trend. Only decide to put a particular in much longer than that for draught beer inside suitable container, chanel outlet put some sort of ramp, possibly section of woo메가

  5. BlogIcon louis vuitton bags 2014.01.23 05:27  수정/삭제  댓글쓰기

    있들Typically the palate develop is about the far better kinds right from Viz on modern memory space oakley standard issue considering that it employs all the hindering routines from your cracking hogan sito ufficiale open routine for you to emphasize views out of your reveal. Held on to for an most of dark colored record, this looks slip around and even over in conjunction with traces regarding color우가

  6. BlogIcon hogan sito ufficiale 2014.01.23 06:32  수정/삭제  댓글쓰기

    료및And the second probability tory burch handbags is actually this genetically one will not currently have substantial titties. Offered ones own profile I believe this can be not as likely. The application looks as you have obtained malfunction from breast area creation. The rear mont blanc insure possesses a good sized picture regarding Rika ever again appearing scheduled separate through the tentac가비

  7. BlogIcon louis vuitton 2014.01.23 06:38  수정/삭제  댓글쓰기

    부드You may possibly not locate what exactly you're looking for whilst searching for unique décor or maybe household furniture reside have strategy in your thoughts you need to have a very particular color choice not to mention trend. Locate anything pleasing that could be a hue from, this would be the best accessory. Rather, you could possibly consistently retrieve a your parajumpers outlet furniture있리

  8. BlogIcon Canada Goose coats 2014.01.23 06:38  수정/삭제  댓글쓰기

    법어Nonetheless you possibly can gain by Roulette with the help of accurate prepare. The truth is, together with the advancement from web based casino casinos of which aspect the video game for Roulette it's these days also attainable so that you can TRIUMPH dollars from their store. Herein Most definitely i'll detail the last word technique for whipping via the internet Roulette mmorpgs.

    Albert Mu에려

  9. BlogIcon rimowa salsa 2014.03.27 05:05  수정/삭제  댓글쓰기

    적뉴1990年以来、米国での結婚式の平均価格はほぼ倍増している。 スーツケース ビジネス-リモワスーツケース 2008年には、結婚式のための値札は[:クリスチャン·サイエンス·モニターソース] ハワイ リモワ ピンク 28000ドルに達した。 rimowa 中古-rimowa classic これは婚約指輪のウェディングドレスや新婚旅行のすべてが含まれています。

    ルイジアナ州では、認定の2種類が小学校教師のための利用可能です。受信者は三年生に事前幼稚園を教えることを可能にする幼児の指定、およびグレード1から5のための基本的な呼称。 リモワ 公式サイト 2009の時点で、27,000人以上の人がルイジアナ州の労働委員会によると、認定の2種類に基づき、第1〜第5年生まで教えて、状態の初等教育の分野で働いていた。

    メンズスーツ 激安 通販-スーツケース1つ アメリカ人はいつも遠く好みの간서

  10. BlogIcon http://www.monocibec.it/japan/6127.html 2014.03.28 08:04  수정/삭제  댓글쓰기

    리우ワシントンで放棄された金鉱山を検索する方法

    土地管理局は、​​障害のない酸鉱山排水から水を保護するために、再利用のために放棄された鉱山現場の在庫を保持し、野生動物や国民を守るために。 放棄された鉱山はなく特定できる所有者や事業者が施設を存在しないサイトとして定義されている、または施設が戻って連邦政府所有に戻ってきた。 BLMに記載されているすべての廃坑は、おそらく連邦または州が所有する土地である。 ワシントンで放棄された金鉱山を見つけるために検索するためのいくつかのデータベースがあります。

    放棄されたサイトが存在すると考えられている郡のレコードを窓口で相互参照するすべての情報。 鉱区は、過去に特許を取得されていた場合は、請求に関連する土地の所有権は、政府からの請求者に渡され、その後、郡の役人が記録していただろう。 最後のステップは、放棄されたように、現在、インベント겠리

  11. BlogIcon オークリー 自転車用 サングラス 2014.04.26 03:50  수정/삭제  댓글쓰기

    마메このような御社の会社であることに興奮している、シーハンはニュースを受け取った後、すぐに言った。 p オークリー サングラス クリア ど トップジャーナリズムの名誉の両方大きくて小さな報道機関とみなしていることを知っていることは本当に特別なものです。 p オークリー メガネ 愛知 む-オークリー ファストジャケット 写真 私たちは、日メディアでサポートされている環境で動作することができて幸運です、それは私たちがそのようなこの1のような物語を追求することができます。

    世界中の最高の観光地の一つであること、プーケットはタイの島の行先である。 オークリー warm up 偏光 あなたが日常生活の退屈な群衆から逃げるのに最適な休暇を探している場合は、プーケットパッケージツアーを予約して自分自身に若返りの休憩を与える必要があります。 東日本株式会社 オークリー 偽物 ビーチでの散歩を話し、地平線할립

  12. BlogIcon 匿名 2014.09.26 23:47  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  13. BlogIcon Moncler Pantalon Femme 2014.10.17 17:49  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  14. BlogIcon Moncler Pull Homme 2014.10.18 00:33  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  15. BlogIcon Moncler écharpe & Chapeaux 2014.10.18 00:35  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  16. BlogIcon Moncler Sacs 2014.10.18 00:36  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  17. BlogIcon Moncler Enfant Doudoune sans manches 2014.10.18 00:49  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  18. BlogIcon Moncler Automne Homme 2014.10.18 00:57  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  19. BlogIcon Moncler Pull Homme 2014.10.18 01:04  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  20. BlogIcon Louboutin Talon Compense 2014.10.18 01:10  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  21. BlogIcon discount formal bridesmaid gown 2014.11.12 13:15  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

Powerd by Tistory, designed by criuce
rss