亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

創建Mascot Capsule v3煙霧效果

2019-11-18 16:14:23
字體:
來源:轉載
供稿:網友

原文地址鏈接

 

       這個例子演示了在不使用高級粒子引擎的情況下,如何創建煙霧效果。主要是使用一些透明紋理精靈(sPRite)來實現的。并讓這些精靈向上移動,順時針或逆時針旋轉。這樣用的好處為了使精靈始終正對這照相機。雖然這個例子是在Mascot Capsule v3實現的,不過同樣的技術可以用于JSR-184中。

 

下載源代碼

 

創建Mascot Capsule v3煙霧效果(圖一)  創建Mascot Capsule v3煙霧效果(圖二)

程序截圖,用煙霧紋理來生成的煙霧效果 

 

下面是smoke類的代碼:

import com.mascotcapsule.micro3d.v3.*;
import java.util.*;

public class Smoke extends V3Object{

    private FigureLayout layout;
    private Effect3D effect;
    private AffineTrans trans;

    // The point sprite command used when rendering the smoke.
    private final int COMMAND = Graphics3D.PRIMITVE_POINT_SPRITES
                                Graphics3D.PDATA_POINT_SPRITE_PARAMS_PER_CMD
                                Graphics3D.PATTR_BLEND_ADD
                                Graphics3D.PATTR_COLORKEY;

    // The number of sprites used.
    private final int NUM_POINT_SPRITES = 10; 
    private SmokeItem []smokeItem = new SmokeItem[NUM_POINT_SPRITES];

    // randomize the sprite rotation.
    private Random r;

    // the smoke texture.
    private Texture texture = null;
    private long ticks = 0; // frame counter.

    public Smoke(int w, int h){
        try{
            texture = new Texture("/res/smoke.bmp", true);
        }catch(Exception e){
            e.printStackTrace();
        }

        layout = new FigureLayout();
        effect = new Effect3D();
        trans = new AffineTrans();
        trans.setIdentity();

        effect.setShadingType(Effect3D.NORMAL_SHADING);
        effect.setSemiTransparentEnabled(true);

        layout.setAffineTrans( trans );
        layout.setPerspective(1, 4096, 512);
        layout.setCenter(w/2, h/2);

        trans.mul(lookAt); // the lookAt is from the super class.

        // Create the smoke sprites.
        smokeItem[0] = new SmokeItem(null);
        for(int i=1; i            smokeItem[i] = new SmokeItem(smokeItem[i-1]);
        }
        smokeItem[NUM_POINT_SPRITES-1].start();
       
    }

    public void update(){
        trans.setIdentity();
        trans.mul(lookAt);
    }

    public void draw(Graphics3D g3d){

        ticks++;
        for(int i=0; i            smokeItem[i].render(g3d);
        }

    }


    private class SmokeItem{
// each item has a reference to the next item so it can
// be started after a certain time or in this case when the item // reaches a certain point.
         private SmokeItem next = null;

         private int [] POINT = { 0, 0, 0 }; // Position of the sprite
         private int [] TEXTURE = {10, 10, 512, 0, 0, 128, 128,
Graphics3D.POINT_SPRITE_PERSPECTIVE};
         private int ROT; // The rotation of the point sprite,
     // this is randomized
    //   w0, h0, a0, x00, y00, x01, y01, f0,
    //   w1, h1, a1, x10, y10, x11, y11, f1, ...

        private int []NORMAL = new int[] {4096};
        private int []COLOR = new int[] {0x00};

        private boolean started = false;
        private Random r = new Random();
        private int mod;
       
        public SmokeItem(SmokeItem next){
            this.next = next;
           
            reset();
        }

        public void start(){
            started = true;
        }

        /*
         * Reset the size and position of the sprite
         */
        private void reset(){
            TEXTURE[0] = 10;
            TEXTURE[1] = 10;
            POINT[1]  = 0;

            ROT = -16 + r.nextInt(32);
        }

        /*
         * The sprite is scaled and moved before rendered to the screen.
         */
        protected void render(Graphics3D g3d){
            if(started && FPS.fps > 0){
               
                mod = FPS.fps/5;
                mod = mod <1?1:mod;
                   
                if(ticks%mod==0){
                    if(TEXTURE[0] < 80){
                        // make the size of the sprite bigger.
                        TEXTURE[0]++;
                        TEXTURE[1]++;
                    }
                }
               
                mod = FPS.fps/10;
                mod = mod <1?1:mod;
               
                if(ticks%mod==0){
                    POINT[1] ++; // add 1 to the y position.
                    if(POINT[1] == 180){
                        reset(); // start over.
                    }
                    if(POINT[1] > 18 && next != null){
                        next.start(); // start moving the next sprite
                    }
                }

                TEXTURE[2] += ROT;
            }
            // render the sprite.
            g3d.renderPrimitives(texture, 0, 0, layout, effect, COMMAND,
1, POINT, NORMAL, TEXTURE, COLOR);
               
        }
       
    }
   
}


 

(出處:http://www.49028c.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91久久婷婷一区二区| 日韩视频永久免费观看| 亚洲欧洲激情在线| 欧美极品少妇xxxxⅹ免费视频| 97超级碰在线看视频免费在线看| 亚洲国产精品国自产拍av秋霞| 日韩一区二区精品视频| 亚洲色图日韩av| 欧美电影电视剧在线观看| 最近中文字幕日韩精品| 久久久久北条麻妃免费看| 亚洲sss综合天堂久久| 久久久久久国产精品久久| 中文字幕日韩精品在线观看| 成人免费在线视频网址| 欧美国产欧美亚洲国产日韩mv天天看完整| 91网在线免费观看| 日韩视频―中文字幕| 精品偷拍一区二区三区在线看| 91精品国产91久久久久久最新| 精品日本美女福利在线观看| 日韩高清av一区二区三区| 在线观看国产精品日韩av| 亚洲色图综合网| 91免费精品视频| 成人欧美在线观看| 91在线观看免费高清| 奇米影视亚洲狠狠色| 亚洲男人av在线| 欧美又大粗又爽又黄大片视频| 性色av一区二区三区| 日韩精品福利网站| 精品久久久久久中文字幕一区奶水| 亚洲天堂网在线观看| 日韩精品视频在线观看免费| 视频一区视频二区国产精品| 国产精欧美一区二区三区| 亚洲精品免费在线视频| 92看片淫黄大片看国产片| 久久久久久久久久久91| 亚洲男人的天堂网站| 清纯唯美亚洲综合| …久久精品99久久香蕉国产| 91午夜在线播放| 91视频8mav| 国产精品日韩欧美大师| 91成人福利在线| 久久久国产精品视频| 亚洲精品一区二区久| 久久久久久国产三级电影| 国产精品入口日韩视频大尺度| 91精品国产91久久久久| 欧美大尺度电影在线观看| 亚洲精品乱码久久久久久金桔影视| 欧美激情视频免费观看| 国外成人在线播放| zzijzzij亚洲日本成熟少妇| 国产免费一区二区三区香蕉精| 久久伊人91精品综合网站| 国产精品女主播视频| 黑人狂躁日本妞一区二区三区| 668精品在线视频| 国产精品色午夜在线观看| 一区二区三区国产视频| 狠狠色香婷婷久久亚洲精品| 国产精品主播视频| 久久久久九九九九| 亚洲国产高清福利视频| 96精品视频在线| 高清欧美性猛交xxxx黑人猛交| 国产精品高潮呻吟视频| 欧美日韩成人在线观看| 久久人体大胆视频| 成人中文字幕+乱码+中文字幕| 国产视频欧美视频| 国产精品久久激情| 欧美高清激情视频| 91视频88av| 国产一区二区日韩| 国产免费成人av| 中文字幕成人精品久久不卡| 欧洲中文字幕国产精品| 日韩欧美亚洲一二三区| 2019中文字幕全在线观看| 久久97精品久久久久久久不卡| 亚洲精品中文字幕有码专区| 精品国产一区二区三区久久狼5月| 日韩免费观看视频| 亚洲天堂色网站| 国产精品入口福利| 国产精品免费久久久久影院| 日韩成人av一区| 91久久精品国产91久久| 欧美精品在线观看| 国产xxx69麻豆国语对白| 狠狠躁夜夜躁久久躁别揉| 久久精品亚洲一区| 日韩精品极品在线观看播放免费视频| 日本电影亚洲天堂| 精品免费在线观看| 亚洲精品成a人在线观看| 国产精品成人在线| 中文字幕在线看视频国产欧美| 欧洲美女免费图片一区| 亚洲电影免费观看高清完整版在线观看| 欧美福利视频在线| 国产精品久久久久aaaa九色| 亚洲激情成人网| 亚洲色图17p| 亚州成人av在线| 欧美激情视频一区二区三区不卡| 97久久超碰福利国产精品…| 色综合久久中文字幕综合网小说| 久久久久久久久久久国产| 久久天天躁日日躁| 国产精品亚洲аv天堂网| 中文字幕久久久av一区| 国产精品精品国产| 欧美电影在线观看高清| 日韩69视频在线观看| 亚洲人成电影网| 色偷偷综合社区| 亚洲国产一区自拍| 亚洲桃花岛网站| 欧美午夜激情小视频| 成人xvideos免费视频| 亚洲视频在线免费观看| 日韩不卡中文字幕| 伊是香蕉大人久久| 色综合五月天导航| 97在线观看视频| 国产精品专区h在线观看| 中日韩美女免费视频网址在线观看| 欧美性69xxxx肥| 91国偷自产一区二区三区的观看方式| 日韩国产在线看| 国语自产在线不卡| 亚洲成人三级在线| 91精品国产成人| 亚洲天堂免费在线| 中文字幕免费精品一区高清| 69**夜色精品国产69乱| 日韩免费在线电影| 久久久国产精品免费| 91在线免费网站| 亚洲成人性视频| 亚洲美女又黄又爽在线观看| 国产精品99久久久久久www| 国产精品www网站| 色婷婷久久av| 国产91露脸中文字幕在线| 国产成人亚洲综合| 91青草视频久久| 欧美日本高清视频| 久久99视频免费| 欧美日韩国产综合视频在线观看中文| 国产午夜一区二区| 91国产视频在线播放| 亚洲国产成人精品久久久国产成人一区| 欧美高清第一页| 亚洲国产小视频在线观看| 91精品久久久久久综合乱菊| 91在线中文字幕| 欧美激情亚洲精品|