Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: Shigeru Kobayashi Newsgroups: playstation.ny.program.questions Subject: Re: [Q] =?iso-2022-jp?B?GyRCO0RBfCRyO0QkOUp9SyEbKEo=?= Date: Wed, 30 Jul 1997 23:28:29 +0900 Organization: PlayStation Net Yarouze Lines: 59 Message-ID: <33DF4F8D.DDBAC611@inetc.roland.co.jp> References: <33DDEB75.7571D090@inetc.roland.co.jp> <5rl5jc$bp7@news1.scei.co.jp> NNTP-Posting-Host: 133.111.200.221 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.0 [en] (Win95; I) X-Priority: 3 (Normal) 小林です ちゃおちさん、Reply ありがとうございます。 Chaochi wrote: > > >フレーム・バッファの内容を一度メイン・メモリに > >転送して加工した後に戻すというような方法を使うのかな? > 基本的にGPUの半透明処理もおんなじようなものですね。 > VRAMからGPU内のレジスタに一度データをロードし、加工後再び > VRAMへ戻している > はず・・だから半透明処理がかかる面積が増えると処理が重くなります。 なるほど。この流れについて私なりに考えてみたのですが、以下のような処理で よろしいのでしょうか。 RECT rc; //使い捨てRECT構造体 while(1){ //main の中の無限 Loop //残像処理 setRECT(&rc, 0, 0, 128, 128); //転送先矩形領域の設定 StoreImage(&rc, (u_long *)0x80090000); DrawSync(0); //必要でしょうか? (透明 bit を On にするための処理) StoreImage(&rc, (u_long *)0x80090000); GsSortSprite(&bgspr,&worldot[actbuf],3); DrawSync(0); VSync(0); GsSwapDispBuff(); GsSortClear(bg_r, bg_g, bg_b, &worldot[actbuf]); GsDrawOt(&worldot[actbuf]); } この中で、恥ずかしながら透明 bit を On にする処理がよくわからないので す。 恐らく for で該当する address の該当する bit を順々に On にしていくのだ と 思いますが…。 今日いろいろとやってみたところ、とりあえず動くようにはなりましたが、半透 明 Bit の処理が出来ていないため、目的の動作の実現には至っていません。 この件について何か参考になりそうな情報などありましたらよろしくお願いいた します。 #ゆっくりながら進みつつあるのですが、まだまだ C についても初心者でかな り 初歩的なところでつまづいてしまいます(^^;)。