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

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

?? camera.java

?? Sunflow是一個照片級的渲染系統
?? JAVA
字號:
package org.sunflow.core;

import org.sunflow.SunflowAPI;
import org.sunflow.math.Matrix4;
import org.sunflow.math.OrthoNormalBasis;
import org.sunflow.math.Point3;
import org.sunflow.math.Vector3;
import org.sunflow.system.UI;
import org.sunflow.system.UI.Module;

/**
 * This class represents a camera to the renderer. It handles the mapping of
 * camera space to world space, as well as the mounting of {@link CameraLens}
 * objects which compute the actual projection.
 */
public class Camera implements RenderObject {
    private final CameraLens lens;
    private Matrix4[] c2w;
    private Matrix4[] w2c;

    public Camera(CameraLens lens) {
        this.lens = lens;
        c2w = w2c = new Matrix4[1]; // null
    }

    public boolean update(ParameterList pl, SunflowAPI api) {
        int n = pl.getInt("transform.steps", 0);
        if (n <= 0) {
            // no motion blur, get regular arguments or leave unchanged
            updateCameraMatrix(-1, pl);
        } else {
            // new motion blur settings - get transform for each step
            c2w = new Matrix4[n];
            for (int i = 0; i < n; i++) {
                if (!updateCameraMatrix(i, pl)) {
                    UI.printError(Module.CAM, "Camera matrix for step %d was not specified!", i + 1);
                    return false;
                }
            }
        }
        w2c = new Matrix4[c2w.length];
        for (int i = 0; i < c2w.length; i++) {
            if (c2w[i] != null) {
                w2c[i] = c2w[i].inverse();
                if (w2c[i] == null) {
                    UI.printError(Module.CAM, "Camera matrix is not invertible");
                    return false;
                }
            } else
                w2c[i] = null;
        }
        return lens.update(pl, api);
    }

    private boolean updateCameraMatrix(int index, ParameterList pl) {
        String offset = index < 0 ? "" : String.format("[%d]", index);
        if (index < 0)
            index = 0;
        Matrix4 transform = pl.getMatrix(String.format("transform%s", offset), null);
        if (transform == null) {
            // no transform was specified, check eye/target/up
            Point3 eye = pl.getPoint(String.format("eye%s", offset), null);
            Point3 target = pl.getPoint(String.format("target%s", offset), null);
            Vector3 up = pl.getVector(String.format("up%s", offset), null);
            if (eye != null && target != null && up != null) {
                c2w[index] = Matrix4.fromBasis(OrthoNormalBasis.makeFromWV(Point3.sub(eye, target, new Vector3()), up));
                c2w[index] = Matrix4.translation(eye.x, eye.y, eye.z).multiply(c2w[index]);
            } else {
                // the matrix for this index was not specified
                // return an error, unless this is a regular update
                return offset.length() == 0;
            }
        } else
            c2w[index] = transform;
        return true;
    }

    /**
     * Generate a ray passing though the specified point on the image plane.
     * Additional random variables are provided for the lens to optionally
     * compute depth-of-field or motion blur effects. Note that the camera may
     * return <code>null</code> for invalid arguments or for pixels which
     * don't project to anything.
     * 
     * @param x x pixel coordinate
     * @param y y pixel coordinate
     * @param imageWidth width of the image in pixels
     * @param imageHeight height of the image in pixels
     * @param lensX a random variable in [0,1) to be used for DOF sampling
     * @param lensY a random variable in [0,1) to be used for DOF sampling
     * @param time a random variable in [0,1) to be used for motion blur
     *            sampling
     * @return a ray passing through the specified pixel, or <code>null</code>
     */
    public Ray getRay(float x, float y, int imageWidth, int imageHeight, double lensX, double lensY, double time) {
        Ray r = lens.getRay(x, y, imageWidth, imageHeight, lensX, lensY, time);
        if (r != null) {
            if (c2w.length == 1) {
                // regular sampling
                r = r.transform(c2w[0]);
            } else {
                // motion blur
                double nt = time * (c2w.length - 1);
                int idx0 = (int) nt;
                int idx1 = Math.min(idx0 + 1, c2w.length - 1);
                r = r.transform(Matrix4.blend(c2w[idx0], c2w[idx1], (float) (nt - idx0)));
            }
            // renormalize to account for scale factors embeded in the transform
            r.normalize();
        }
        return r;
    }

    /**
     * Generate a ray from the origin of camera space toward the specified
     * point.
     * 
     * @param p point in world space
     * @return ray from the origin of camera space to the specified point
     */
    Ray getRay(Point3 p) {
        return new Ray(c2w == null ? new Point3(0, 0, 0) : c2w[0].transformP(new Point3(0, 0, 0)), p);
    }

    /**
     * Returns a transformation matrix mapping camera space to world space.
     * 
     * @return a transformation matrix
     */
    Matrix4 getCameraToWorld() {
        return c2w == null ? Matrix4.IDENTITY : c2w[0];
    }

    /**
     * Returns a transformation matrix mapping world space to camera space.
     * 
     * @return a transformation matrix
     */
    Matrix4 getWorldToCamera() {
        return w2c == null ? Matrix4.IDENTITY : w2c[0];
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性猛片xxxx免费看久爱| 91网站视频在线观看| 一区二区久久久| 亚洲色图.com| 亚洲精品免费播放| 亚洲精品国久久99热| 亚洲免费av观看| 一级中文字幕一区二区| 亚洲亚洲人成综合网络| 视频精品一区二区| 久久精品国产免费| 韩国欧美国产1区| 成人丝袜18视频在线观看| 成人动漫一区二区三区| 99久久国产免费看| 国精产品一区一区三区mba桃花| 国产精品一区二区在线观看不卡 | 欧美成人午夜电影| 久久久久久**毛片大全| 中文字幕一区二区三区在线观看 | 欧美精品电影在线播放| 日韩精品一区二区三区三区免费| 久久精子c满五个校花| 亚洲天堂a在线| 日韩精品久久理论片| 国产寡妇亲子伦一区二区| 91啪亚洲精品| 精品国产一区二区三区久久影院 | 麻豆91免费看| 波多野结衣精品在线| 欧美亚洲丝袜传媒另类| 久久一夜天堂av一区二区三区 | 色综合咪咪久久| 日韩欧美一区二区久久婷婷| 国产欧美1区2区3区| 亚洲va欧美va天堂v国产综合| 久久国产日韩欧美精品| 色婷婷亚洲精品| 欧美不卡一二三| 亚洲精品免费播放| 国产精品中文字幕日韩精品| 欧美日韩国产区一| 国产精品日韩精品欧美在线| 蜜臀91精品一区二区三区| av高清久久久| 日韩女优毛片在线| 亚洲国产精品久久久久婷婷884| 国产麻豆一精品一av一免费| 欧美性感一区二区三区| 亚洲欧洲99久久| 国产美女视频91| 欧美va日韩va| 日韩av网站免费在线| 欧美午夜精品电影| 亚洲人精品午夜| 成人国产亚洲欧美成人综合网| 91精品欧美一区二区三区综合在| 一区二区成人在线| 97久久人人超碰| 国产精品色一区二区三区| 国产精品资源网| 久久久99精品久久| 国产尤物一区二区在线| 精品美女在线播放| 韩国一区二区视频| 精品国产亚洲在线| 麻豆视频观看网址久久| 欧美一级精品在线| 免费观看一级特黄欧美大片| 欧美美女黄视频| 日本系列欧美系列| 91精品国产高清一区二区三区| 丝袜a∨在线一区二区三区不卡| 日本高清不卡视频| 亚洲国产一区二区三区青草影视 | 91精品国产综合久久精品性色 | 欧美大胆一级视频| 美日韩一级片在线观看| 欧美成人性战久久| 国产成人av福利| 国产精品天美传媒沈樵| 99re66热这里只有精品3直播| 日韩一区欧美小说| 欧美性大战久久| 秋霞午夜鲁丝一区二区老狼| 日韩精品在线一区| 成人一级黄色片| 亚洲女子a中天字幕| 欧美日本一区二区在线观看| 日韩福利电影在线| 久久综合丝袜日本网| 成人av免费在线播放| 一区二区三区自拍| 欧美老年两性高潮| 久久精品国产在热久久| 中文字幕av资源一区| 91麻豆免费在线观看| 天天亚洲美女在线视频| 久久日韩精品一区二区五区| 成人精品gif动图一区| 香蕉加勒比综合久久| 日韩精品中文字幕一区| 97精品久久久午夜一区二区三区 | 91亚洲精品久久久蜜桃网站 | 亚洲一区二区三区免费视频| 91精品国产麻豆国产自产在线| 成人综合在线观看| 性欧美疯狂xxxxbbbb| 国产精品久久午夜夜伦鲁鲁| 欧美三级电影网站| 成人h动漫精品一区二| 日韩经典一区二区| 最新国产の精品合集bt伙计| 欧美一区二区三区在线视频| av中文字幕亚洲| 狠狠色丁香婷婷综合久久片| 亚洲精品国产成人久久av盗摄| 日韩欧美亚洲一区二区| 91成人免费在线视频| 国产一区二区三区四| 午夜日韩在线观看| 亚洲图片欧美激情| 国产农村妇女毛片精品久久麻豆| 欧美日韩精品一区二区三区蜜桃 | 欧美色老头old∨ideo| 精品一区二区三区在线播放视频| 一区二区日韩电影| 亚洲天堂av一区| 国产欧美一区二区精品久导航 | 国产精品一二三区在线| 亚洲午夜久久久久| 国产精品久久久久久久久果冻传媒| 日韩欧美123| 欧美一区二区三区在线观看视频| 色94色欧美sute亚洲线路一ni| 成人av在线一区二区三区| 国内精品国产成人国产三级粉色 | 国产在线精品国自产拍免费| 性欧美疯狂xxxxbbbb| 亚洲乱码国产乱码精品精可以看 | 一区二区三区鲁丝不卡| 亚洲国产精品激情在线观看| 久久免费视频色| 久久综合久久鬼色| 精品人在线二区三区| 日韩免费观看高清完整版 | 亚洲国产精品ⅴa在线观看| 久久亚洲影视婷婷| 精品国产乱码久久久久久免费 | 精品一区二区三区在线观看国产| 亚洲成av人片在线观看| 亚洲在线成人精品| 亚洲国产日产av| 日本伊人精品一区二区三区观看方式| 亚洲国产精品综合小说图片区| 亚洲在线视频免费观看| 午夜视频一区在线观看| 麻豆国产一区二区| 国产一区二区精品在线观看| 国产成人在线视频免费播放| 懂色av一区二区在线播放| 99这里只有精品| 欧美综合天天夜夜久久| 欧美一级高清大全免费观看| 精品国产伦一区二区三区观看方式| 久久综合九色综合97婷婷女人| 国产三级欧美三级日产三级99| 国产精品妹子av| 亚洲国产日韩a在线播放性色| 日本美女一区二区| 国产一区二区三区高清播放| www.成人在线| 欧美日韩一级视频| 精品99一区二区三区| 国产精品麻豆欧美日韩ww| 亚洲国产一区二区a毛片| 精品一二线国产| 91在线视频播放地址| 欧美日韩另类国产亚洲欧美一级| 日韩欧美黄色影院| 国产精品理论片在线观看| 亚洲一二三区不卡| 国产福利不卡视频| 欧美色图激情小说| 国产日韩成人精品| 日韩电影一区二区三区| 懂色av一区二区三区蜜臀| 欧美日韩在线播| 欧美激情在线一区二区| 日韩中文字幕亚洲一区二区va在线| 激情综合五月婷婷| 欧美在线一二三四区| 久久久午夜电影| 视频一区中文字幕国产| aaa欧美大片| 久久综合九色综合97婷婷女人| 亚洲一区免费观看| www.日韩在线| 国产亚洲1区2区3区| 日本 国产 欧美色综合|