normalmapmodifier.java
来自「Sunflow是一个照片级的渲染系统」· Java 代码 · 共 29 行
JAVA
29 行
package org.sunflow.core.modifiers;
import org.sunflow.SunflowAPI;
import org.sunflow.core.Modifier;
import org.sunflow.core.ParameterList;
import org.sunflow.core.ShadingState;
import org.sunflow.core.Texture;
import org.sunflow.core.TextureCache;
import org.sunflow.math.OrthoNormalBasis;
public class NormalMapModifier implements Modifier {
private Texture normalMap;
public NormalMapModifier() {
normalMap = null;
}
public boolean update(ParameterList pl, SunflowAPI api) {
String filename = pl.getString("texture", null);
if (filename != null)
normalMap = TextureCache.getTexture(api.resolveTextureFilename(filename), true);
return normalMap != null;
}
public void modify(ShadingState state) {
// apply normal map
state.getNormal().set(normalMap.getNormal(state.getUV().x, state.getUV().y, state.getBasis()));
state.setBasis(OrthoNormalBasis.makeFromW(state.getNormal()));
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?