accelerationstructurefactory.java

来自「Sunflow是一个照片级的渲染系统」· Java 代码 · 共 41 行

JAVA
41
字号
package org.sunflow.core;

import org.sunflow.core.accel.BoundingIntervalHierarchy;
import org.sunflow.core.accel.KDTree;
import org.sunflow.core.accel.NullAccelerator;
import org.sunflow.core.accel.UniformGrid;
import org.sunflow.system.UI;
import org.sunflow.system.UI.Module;

class AccelerationStructureFactory {
    static final AccelerationStructure create(String name, int n, boolean primitives) {
        if (name == null || name.equals("auto")) {
            if (primitives) {
                if (n > 20000000)
                    return new UniformGrid();
                else if (n > 2000000)
                    return new BoundingIntervalHierarchy();
                else if (n > 2)
                    return new KDTree();
                else
                    return new NullAccelerator();
            } else {
                if (n > 2)
                    return new BoundingIntervalHierarchy();
                else
                    return new NullAccelerator();
            }
        } else if (name.equals("uniformgrid"))
            return new UniformGrid();
        else if (name.equals("null"))
            return new NullAccelerator();
        else if (name.equals("kdtree"))
            return new KDTree();
        else if (name.equals("bih"))
            return new BoundingIntervalHierarchy();
        else {
            UI.printWarning(Module.ACCEL, "Unrecognized intersection accelerator \"%s\" - using auto", name);
            return create(null, n, primitives);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?