亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? joglprojectedviewrenderer.java

?? 基于java的3d開發庫。對坐java3d的朋友有很大的幫助。
?? JAVA
字號:
//===========================================================================//=-------------------------------------------------------------------------=//= References:                                                             =//= [FUNK2003], Funkhouser, Thomas.  Min, Patrick. Kazhdan, Michael. Chen,  =//=     Joyce. Halderman, Alex. Dobkin, David. Jacobs, David. "A Search     =//=     Engine for 3D Models", ACM Transactions on Graphics, Vol 22. No1.   =//=     January 2003. Pp. 83-105                                            =//===========================================================================// JOGL classesimport javax.media.opengl.GL;// VSDK Classesimport vsdk.toolkit.common.RendererConfiguration;import vsdk.toolkit.common.Matrix4x4;import vsdk.toolkit.common.Vector3D;import vsdk.toolkit.media.Image;import vsdk.toolkit.media.RGBImage;import vsdk.toolkit.media.IndexedColorImage;import vsdk.toolkit.media.NormalMap;import vsdk.toolkit.media.ZBuffer;import vsdk.toolkit.environment.Camera;import vsdk.toolkit.environment.scene.SimpleBody;import vsdk.toolkit.environment.scene.SimpleBodyGroup;import vsdk.toolkit.render.jogl.JoglRGBImageRenderer;import vsdk.toolkit.render.jogl.JoglZBufferRenderer;import vsdk.toolkit.render.jogl.JoglSimpleBodyGroupRenderer;import vsdk.toolkit.render.jogl.JoglCameraRenderer;public class JoglProjectedViewRenderer {    public Image image;    private SimpleBodyGroup bodies;    private RendererConfiguration quality;    private Camera camera;    private int side = 0;    private boolean isTransparent;    private int xSize;    private int ySize;    public JoglProjectedViewRenderer(int xSize, int ySize, boolean transparent) {        bodies = null;        quality = new RendererConfiguration();        quality.setWires(false);        quality.setSurfaces(true);        camera = new Camera();        camera.setFov(90);        camera.setProjectionMode(camera.PROJECTION_MODE_ORTHOGONAL);        camera.setNearPlaneDistance(2);        camera.setFarPlaneDistance(20);        isTransparent = transparent;        this.xSize = xSize;        this.ySize = ySize;    }    /**    Given a body set and a cameraConfig, current method sets bodies and camera    to build a small virtual 3D scene to match with one neccesary to construct    a projected image, as decribed in [FUNK2003].5, and figure [FUNK2003].8.    Note that `cameraConfig` has the following posible values:      - 1   Front side view (from -Y axis)      - 2   Lateral side view (from -X axis)      - 3   Top side view (from -Z axis)      - 4   Corner view from -X -Y Z direction      - 5   Corner view from  X -Y Z direction      - 6   Corner view from  X  Y Z direction      - 7   Corner view from -X  Y Z direction      - 8   Tilt view edge +Y on plane -Z      - 9   Tilt view edge -X on plane -Z      - 10  Tilt view edge -Y on plane -Z      - 11  Tilt view edge +X on plane -Z      - 12  Tilt view edge +X on plane -Y      - 13  Tilt view edge +X on plane Y    */    public void configureScene(SimpleBodyGroup center, int cameraConfig)    {        side = cameraConfig;        bodies = center;        Vector3D position = new Vector3D(0, 0, 0);        Matrix4x4 R = new Matrix4x4();        double cornerAngle;        Vector3D down = new Vector3D(0, 0, -1);        Vector3D cornerReference = new Vector3D(10, 10, -10);        cornerReference.normalize();        cornerAngle = (Math.PI/2-(Math.acos(down.dotProduct(cornerReference))));        switch( cameraConfig ) {          case 1:            position = new Vector3D(0, -10, 0);            R.eulerAnglesRotation(Math.toRadians(90), 0, 0);            break;          case 2:            position = new Vector3D(-10, 0, 0);            break;          case 3:            position = new Vector3D(0, 0, -10);            R.eulerAnglesRotation(Math.toRadians(-90), Math.toRadians(90), 0);            break;          case 4:            position = new Vector3D(-10, -10, 10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(45), -cornerAngle, 0);            break;          case 5:            position = new Vector3D(10, -10, 10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(135), -cornerAngle, 0);            break;          case 6:            position = new Vector3D(10, 10, 10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(-135), -cornerAngle, 0);            break;          case 7:            position = new Vector3D(-10, 10, 10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(-45), -cornerAngle, 0);            break;          case 8:            position = new Vector3D(0, 10, -10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(-90), Math.toRadians(45), 0);            break;          case 9:            position = new Vector3D(-10, 0, -10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(0), Math.toRadians(45), 0);            break;          case 10:            position = new Vector3D(0, -10, -10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(90), Math.toRadians(45), 0);            break;          case 11:            position = new Vector3D(10, 0, -10);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(180), Math.toRadians(45), 0);            break;          case 12:            position = new Vector3D(10, -10, 0);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(135), 0, 0);            break;          case 13:            position = new Vector3D(10, 10, 0);            position.normalize();            position = position.multiply(10);            R.eulerAnglesRotation(Math.toRadians(180+45), 0, 0);            break;          default:            break;        }        camera.setPosition(position);        camera.setRotation(R);    }    public void draw(GL gl) {        gl.glViewport(0, 0, xSize, ySize);        //-----------------------------------------------------------------        gl.glClearColor(0.5f, 0.5f, 0.9f, 1);        gl.glClear(GL.GL_COLOR_BUFFER_BIT);        gl.glClear(GL.GL_DEPTH_BUFFER_BIT);        gl.glEnable(gl.GL_DEPTH_TEST);        JoglCameraRenderer.activate(gl, camera);        gl.glMatrixMode(GL.GL_MODELVIEW);        gl.glLoadIdentity();        if ( bodies == null ) {            gl.glColor3d(1, 1, 1);             gl.glBegin(GL.GL_LINES);                gl.glVertex3d(0, 0, 0);                gl.glVertex3d(0.5, 0.5, 0);            gl.glEnd();        }        else {            JoglSimpleBodyGroupRenderer.draw(gl, bodies, camera, quality);        }                gl.glFlush();        //- Obtain ZBuffer ------------------------------------------------        IndexedColorImage zbuffer;        NormalMap nm;        zbuffer = JoglZBufferRenderer.importJOGLZBuffer(gl).exportIndexedColorImage();        //- Erase internal details: keep just the depth frontier border ---        int x, y;        int val;        for ( x = 0; x < zbuffer.getXSize(); x++ ) {            for ( y = 0; y < zbuffer.getYSize(); y++ ) {                val = zbuffer.getPixel(x, y);                if ( val < 255 ) {                    zbuffer.putPixel(x, y, (byte)0);                }                else {                    zbuffer.putPixel(x, y, (byte)255);                }            }        }        //- Get contourns from depth buffer's gradient --------------------        nm = new NormalMap();        nm.importBumpMap(zbuffer, new Vector3D(1, 1, 0.1));        if ( isTransparent ) {            image = nm.exportToRgbaImageGradient();          }          else {            image = nm.exportToRgbImageGradient();        }        //- Calculate borders (contourns) ---------------------------------        if ( isTransparent ) {            image = nm.exportToRgbaImageGradient();          }          else {            image = nm.exportToRgbImageGradient();        }        //- Debug code (disabled) -----------------------------------------        //image=JoglRGBImageRenderer.getImageJOGL(gl);        //vsdk.toolkit.io.image.ImagePersistence.exportPPM(new java.io.File("./output" + side + ".ppm"), image);    }}//===========================================================================//= EOF                                                                     =//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线观看不卡| 综合在线观看色| 国产大片一区二区| 国产精品国产成人国产三级| 青青草国产精品97视觉盛宴| 成人久久视频在线观看| 国产亚洲婷婷免费| 一本色道亚洲精品aⅴ| 一区二区三区日本| 欧美成人精品二区三区99精品| av一区二区三区黑人| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲图片欧美综合| 久久久久久电影| 欧美一区二区在线观看| 91原创在线视频| 国产精品原创巨作av| 奇米777欧美一区二区| 一个色妞综合视频在线观看| 国产精品―色哟哟| 欧美精品一区男女天堂| 3d动漫精品啪啪| 欧美日韩一区二区三区在线看| 国产凹凸在线观看一区二区| 伦理电影国产精品| 午夜精品久久久久久不卡8050| 亚洲天天做日日做天天谢日日欢 | 欧美激情艳妇裸体舞| 日韩一级黄色片| 欧美理论在线播放| 欧美日韩在线一区二区| 色嗨嗨av一区二区三区| 99久久久国产精品| 国产999精品久久久久久 | 色哟哟国产精品免费观看| 成人涩涩免费视频| 激情国产一区二区| 久久99热99| 经典一区二区三区| 国产在线精品一区二区不卡了 | 成人免费黄色大片| 国产成人午夜视频| 国产风韵犹存在线视精品| 国产乱妇无码大片在线观看| 国产在线国偷精品免费看| 免费精品视频在线| 美国毛片一区二区三区| 日本中文字幕一区二区有限公司| 欧美高清在线精品一区| 欧美一卡2卡3卡4卡| 不卡av免费在线观看| 午夜av区久久| 亚洲欧美日韩国产中文在线| 久久综合资源网| 一本在线高清不卡dvd| 国产乱子伦视频一区二区三区 | 亚洲国产va精品久久久不卡综合| 日韩三级在线免费观看| 91在线视频网址| 高清不卡一二三区| 精品在线视频一区| 美女诱惑一区二区| 色嗨嗨av一区二区三区| aaa欧美色吧激情视频| 久久精品国产久精国产| 中文乱码免费一区二区| 精品1区2区在线观看| 欧美精品久久天天躁| 久久日韩精品一区二区五区| 激情综合色综合久久综合| 99麻豆久久久国产精品免费 | 97se亚洲国产综合自在线| 成人18精品视频| 国产自产高清不卡| 一区在线观看免费| 樱花影视一区二区| 久久久欧美精品sm网站| 国产精品久久毛片a| 国产精品丝袜黑色高跟| 亚洲一区二区视频| 久草在线在线精品观看| 不卡的看片网站| 日本韩国视频一区二区| 欧美久久高跟鞋激| 久久精品网站免费观看| 亚洲人妖av一区二区| 日韩在线卡一卡二| 成人一区二区三区视频在线观看| 欧美性生交片4| 亚洲精品一线二线三线无人区| 国产精品美日韩| 亚洲国产cao| 国产一区二区视频在线播放| 91亚洲精品乱码久久久久久蜜桃 | 免费欧美日韩国产三级电影| 国产乱码精品1区2区3区| 色欧美乱欧美15图片| 亚洲精品一区二区三区99| 亚洲男女毛片无遮挡| 美女爽到高潮91| 色狠狠一区二区三区香蕉| 精品少妇一区二区三区免费观看| 亚洲女人小视频在线观看| 免费在线观看精品| www.日韩大片| 欧美成人高清电影在线| 亚洲综合精品自拍| 丰满放荡岳乱妇91ww| 欧美无乱码久久久免费午夜一区 | 国产精品美日韩| 亚洲成av人片在线| 国产精品一区二区三区99| 91视视频在线观看入口直接观看www | 91成人免费电影| 久久久www免费人成精品| 亚洲综合色在线| 99re亚洲国产精品| 久久这里只有精品首页| 性做久久久久久免费观看| 国产一区 二区 三区一级| 在线播放中文字幕一区| 亚洲综合区在线| 懂色av噜噜一区二区三区av| 日韩一区二区三区视频| 亚洲国产一区二区在线播放| 95精品视频在线| 国产精品久久久久久久久果冻传媒| 久久成人久久鬼色| 欧美一区国产二区| 亚洲国产精品麻豆| 欧美吞精做爰啪啪高潮| 亚洲精品五月天| 91在线观看免费视频| 久久精品人人做人人爽人人| 秋霞午夜鲁丝一区二区老狼| 欧美日韩卡一卡二| 亚洲成人动漫在线免费观看| av日韩在线网站| 中文字幕一区二区三区乱码在线| 国产精品77777竹菊影视小说| 26uuu国产电影一区二区| 免费观看在线综合| 欧美电影免费观看高清完整版| 日韩福利电影在线观看| 在线播放欧美女士性生活| 亚洲成a人片综合在线| 欧美亚洲高清一区二区三区不卡| 一区二区三区不卡视频| 色综合久久综合| 亚洲精品国产第一综合99久久| 91婷婷韩国欧美一区二区| 国产精品五月天| 99re成人在线| 亚洲蜜桃精久久久久久久| 色婷婷激情久久| 亚洲h动漫在线| 欧美日韩不卡视频| 视频一区免费在线观看| 日韩美女天天操| 国产精品综合av一区二区国产馆| 不卡大黄网站免费看| 色哟哟一区二区在线观看| 成人黄页毛片网站| 成人app软件下载大全免费| 国产一区二区三区在线观看精品| 亚洲成av人片一区二区| 欧美日韩视频第一区| 五月婷婷欧美视频| 精品视频资源站| 婷婷综合在线观看| 欧美久久久久久久久中文字幕| 国产在线精品国自产拍免费| 久久久久久久久久美女| 成人av影视在线观看| 亚洲自拍偷拍综合| 精品久久久网站| 成熟亚洲日本毛茸茸凸凹| 一区二区三区四区不卡在线 | 欧美成人三级在线| 国产成人免费视频网站 | 91美女片黄在线| 午夜精品爽啪视频| 精品人伦一区二区色婷婷| eeuss鲁片一区二区三区| 亚洲福利一二三区| 久久亚洲私人国产精品va媚药| 波多野结衣91| 三级欧美韩日大片在线看| 国产欧美日韩精品a在线观看| 在线观看视频一区二区| 日本在线不卡视频一二三区| 国产精品私人影院| 欧美一区二区网站| 99综合电影在线视频| 久久精品国产**网站演员| 亚洲天堂免费在线观看视频| 69av一区二区三区| 成人av网址在线| 午夜精品久久久久久久久久| 日本一区二区免费在线|