add ability to switch between flat/fast and shiny/slow slice render methods

This commit is contained in:
Stewart Allen 2022-09-16 10:43:53 -04:00
commit a8bbedf435
5 changed files with 19 additions and 2 deletions

View file

@ -680,6 +680,7 @@ const conf = exports({
controller:{
view: null,
dark: false,
shiny: false,
decals: true,
danger: false,
zoomSpeed: 1.0,

View file

@ -177,6 +177,7 @@ gapp.register("kiri.init", [], (root, exports) => {
if (control.antiAlias != ui.antiAlias.checked) {
api.show.alert('Page Reload Required to Change Aliasing');
}
control.shiny = ui.shiny.checked;
control.decals = ui.decals.checked;
control.danger = ui.danger.checked;
control.showOrigin = ui.showOrigin.checked;
@ -1756,6 +1757,7 @@ gapp.register("kiri.init", [], (root, exports) => {
showRulers: uc.newBoolean(LANG.op_shru_s, booleanSave, {title:LANG.op_shru_l}),
showSpeeds: uc.newBoolean(LANG.op_sped_s, speedSave, {title:LANG.op_sped_l}),
decals: uc.newBoolean(LANG.op_decl_s, booleanSave, {title:LANG.op_decl_s}),
shiny: uc.newBoolean(LANG.op_shny_s, booleanSave, {title:LANG.op_shny_l, modes:FDM}),
lineType: uc.newSelect(LANG.op_line_s, {title: LANG.op_line_l, action: lineTypeSave, modes:FDM}, "linetype"),
animesh: uc.newSelect(LANG.op_anim_s, {title: LANG.op_anim_l, action: aniMeshSave, modes:CAM}, "animesh"),
units: uc.newSelect(LANG.op_unit_s, {title: LANG.op_unit_l, action: unitsSave, modes:CAM, trace:true}, "units"),

View file

@ -7,12 +7,13 @@ gapp.register("kiri.stack", [], (root, exports) => {
const { kiri } = root;
class Stack {
constructor(view, freeMem) {
constructor(view, freeMem, shiny) {
this._view = view;
this.view = view.newGroup();
this.slices = [];
this.meshes = [];
this.freeMem = freeMem;
newMat = shiny ? createPhongMaterial : createLambertMaterial;
}
size() {
@ -259,4 +260,15 @@ function createPhongMaterial(color, flat) {
});
}
function createLambertMaterial(color, flat) {
return new THREE.MeshLambertMaterial({
// shininess,
// specular,
transparent: color.opacity != 1,
opacity: color.opacity || 1,
color: color.face,
side: flat ? THREE.DoubleSide : THREE.FrontSide
});
}
});

View file

@ -80,7 +80,7 @@ function create(name, view) {
}
const stack = stacks[name] = {
layers: [ ],
obj: new kiri.Stack(view, freeMem),
obj: new kiri.Stack(view, freeMem, kiri.api.conf.get().controller.shiny),
add: function(layers) {
let lmap = layers.layers;
let map = stack.obj.addLayers(layers);

View file

@ -236,6 +236,8 @@ self.kiri.lang['en-us'] = {
op_xprt_l: "show more settings options",
op_decl_s: "show decals",
op_decl_l: "show device decals and logos",
op_shny_s: "detail render",
op_shny_l: "choose a slice render method that is slower and uses specular highlighting. this makes it easier to see detail in some models at the expense of render speed",
op_dang_s: "experimental",
op_dang_l: "show experimental parameters",
op_devl_s: "developer",