New project

This commit is contained in:
unknown
2018-10-23 23:41:56 +02:00
parent df0ba13d37
commit cce8ebf4bc
6 changed files with 80 additions and 43 deletions
+10 -7
View File
@@ -3,19 +3,22 @@ import arm.material.mat_utils
import arm.write_data
import arm.assets
import arm.make_renderpath
import arm.make_state
def on_make_renderpath():
arm.assets.add_shader_pass('max_luminance_pass')
arm.assets.add_shader_pass('copy_mrt3_pass')
arm.assets.add_shader_pass('copy_mrt4_pass')
def register():
if bpy.data.worlds['Arm'].arm_project_name == 'ArmorPaint':
arm.material.mat_utils.add_mesh_contexts.append('voxel') # Defaults to make_ao
arm.write_data.add_compiledglsl = """
const ivec3 voxelgiResolution = ivec3(256, 256, 256);
const vec3 voxelgiHalfExtents = vec3(2.0, 2.0, 2.0);
"""
if arm.make_state.target == 'krom':
arm.material.mat_utils.add_mesh_contexts = ['voxel'] # Defaults to make_ao
arm.write_data.add_compiledglsl = """
const ivec3 voxelgiResolution = ivec3(256, 256, 256);
const vec3 voxelgiHalfExtents = vec3(2.0, 2.0, 2.0);
"""
else:
arm.material.mat_utils.add_mesh_contexts = []
def register():
arm.make_renderpath.callback = on_make_renderpath
+3 -2
View File
@@ -714,8 +714,8 @@ class UINodes extends iron.Trait {
frag.add_function(armory.system.CyclesFunctions.str_octahedronWrap);
// Apply normal channel
vert.add_uniform('vec3 eye', '_cameraPosition');
vert.add_uniform('mat4 W', '_worldMatrix');
vert.add_uniform('vec3 eye', '_cameraPosition'); // eyeDir discard
vert.add_uniform('mat4 W', '_worldMatrix'); //eyeDir discard
vert.write('vec4 spos = vec4(pos, 1.0);');
vert.write('vec4 wposition = W * spos;');
vert.add_out('vec3 eyeDir');
@@ -1168,6 +1168,7 @@ class UINodes extends iron.Trait {
if (UITrait.inst.brushType == 2 && UITrait.inst.autoFillHandle.selected) { // Fill
UITrait.inst.pdirty = 8;
UITrait.inst.ddirty = 8;
}
// }
// else {
+60 -18
View File
@@ -145,9 +145,7 @@ class UITrait extends iron.Trait {
public static var defaultWindowW = 280;
public static var penPressure = true;
public static var drawWorld = true;
public static var undoEnabled = true;
public static var worldColor = 0xffffffff;
public var isScrolling = false;
public var colorIdPicked = false;
@@ -157,6 +155,9 @@ class UITrait extends iron.Trait {
var message = "";
var messageTimer = 0.0;
var savedEnvmap:kha.Image = null;
var emptyEnvmap:kha.Image = null;
public var ddirty = 0;
public var pdirty = 0;
public var rdirty = 0;
@@ -255,6 +256,9 @@ class UITrait extends iron.Trait {
public var mirrorX = false;
public var showGrid = false;
public var autoFillHandle = new Zui.Handle({selected: false});
var newConfirm = false;
var newObject = 0;
var newObjectNames = ["Cube", "Plane", "Sphere", "Cylinder"];
var sub = 0;
var vec2 = new iron.math.Vec4();
@@ -1317,8 +1321,7 @@ void main() {
UINodes.inst.parseMeshMaterial();
hwnd.redraws = 2;
ddirty = 2;
// Auto-disable on brush change
autoFillHandle.selected = false;
autoFillHandle.selected = false; // Auto-disable
}
function selectObject(o:iron.object.Object) {
@@ -1865,8 +1868,10 @@ void main() {
if (layers.length < 2) {
selectedLayer = new LayerSlot();
layers.push(selectedLayer);
ui.g.end();
UINodes.inst.parseMeshMaterial();
UINodes.inst.parsePaintMaterial();
ui.g.begin(false);
ddirty = 2;
iron.App.notifyOnRender(clearLastLayer);
}
@@ -1992,17 +1997,34 @@ void main() {
ui.button("Save..");
ui.button("Save As..");
ui.row([1/2,1/2]);
if (ui.button("New")) {
// currentObject.data.delete();
// iron.data.Data.cachedMeshes.remove("mesh_Cube");
iron.data.Data.getMesh("mesh_Cube", "Cube", function(md:MeshData) {
iron.App.notifyOnRender(initLayers);
if (paintHeight) iron.App.notifyOnRender(initHeightLayer);
// currentObject.setData(md);
paintObject = currentObject;
});
if (newConfirm) {
if (ui.button("Confirm")) {
newConfirm = false;
var n = newObjectNames[newObject];
iron.data.Data.getMesh("mesh_" + n, n, function(md:MeshData) {
currentObject.setData(md);
paintObject = currentObject;
ui.g.end();
materials = [new MaterialSlot()];
selectedMaterial = materials[0];
layers = [new LayerSlot()];
selectedLayer = layers[0];
iron.App.notifyOnRender(initLayers);
if (paintHeight) iron.App.notifyOnRender(initHeightLayer);
UINodes.inst.updateCanvasMap();
UINodes.inst.parsePaintMaterial();
makeMaterialPreview();
ui.g.begin(false);
assets = [];
assetNames = [];
assetId = 0;
});
}
}
ui.combo(Id.handle(), ["Cube", "Plane", "Sphere", "Cylinder"], "Default Object");
else if (ui.button("New")) {
newConfirm = true;
}
newObject = ui.combo(Id.handle(), newObjectNames, "Default Object");
}
if (ui.panel(Id.handle({selected: true}), "Quality", 1)) {
@@ -2326,15 +2348,35 @@ void main() {
var hsupersample = Id.handle({position: getSuperSampleQuality(apconfig.rp_supersample)});
if (ui.panel(Id.handle({selected: true}), "Viewport", 1)) {
apconfig.window_vsync = ui.check(Id.handle({selected: apconfig.window_vsync}), "VSync");
var drawWorldHandle = Id.handle({selected: drawWorld});
drawWorld = ui.check(drawWorldHandle, "Envmap");
var drawWorldHandle = Id.handle({selected: true});
var drawWorld = ui.check(drawWorldHandle, "Envmap");
if (drawWorldHandle.changed) {
ddirty = 2;
}
if (savedEnvmap == null) savedEnvmap = iron.Scene.active.world.envmap;
if (!drawWorld) {
var hwheel = Id.handle();
worldColor = Ext.colorWheel(ui, hwheel);
var hwheel = Id.handle({color: 0xff030303});
var worldColor:kha.Color = Ext.colorWheel(ui, hwheel);
if (emptyEnvmap == null) {
var b = haxe.io.Bytes.alloc(4);
b.set(0, worldColor.Rb);
b.set(1, worldColor.Gb);
b.set(2, worldColor.Bb);
b.set(3, 255);
emptyEnvmap = kha.Image.fromBytes(b, 1, 1);
}
if (hwheel.changed) {
var b = emptyEnvmap.lock();
b.set(0, worldColor.Rb);
b.set(1, worldColor.Gb);
b.set(2, worldColor.Bb);
emptyEnvmap.unlock();
ddirty = 2;
}
iron.Scene.active.world.envmap = emptyEnvmap;
}
else iron.Scene.active.world.envmap = savedEnvmap;
ui.check(hssgi, "SSAO");
ui.check(hssr, "SSR");
ui.check(hbloom, "Bloom");
+1 -1
View File
@@ -85,7 +85,7 @@ void main() {
if (!show) return;
if (arm.App.realw() == 0 || arm.App.realh() == 0) return;
if (UITrait.inst.paintDirty()) hwnd.redraws = 2;
if (UITrait.inst.pdirty >= 0) hwnd.redraws = 2; // Paint was active
var tw = iron.App.w() * 0.95;
var tx = iron.App.w() / 2 - tw / 2;
+6 -15
View File
@@ -685,11 +685,7 @@ class RenderPathDeferred {
}
#else
{
// Paint
// path.clearTarget(null, 1.0);
if (!UITrait.drawWorld) path.clearTarget(UITrait.worldColor, 1.0);
else path.clearTarget(null, 1.0);
//
path.clearTarget(null, 1.0);
}
#end
@@ -971,10 +967,7 @@ class RenderPathDeferred {
#if (rp_background == "World")
{
// Paint
// path.drawSkydome("shader_datas/world_pass/world_pass");
if (UITrait.drawWorld) path.drawSkydome("shader_datas/world_pass/world_pass");
//
path.drawSkydome("shader_datas/world_pass/world_pass");
}
#end
@@ -1281,8 +1274,7 @@ class RenderPathDeferred {
}
#else
{
if (!UITrait.drawWorld) path.clearTarget(UITrait.worldColor, 1.0);
else path.clearTarget(null, 1.0);
path.clearTarget(null, 1.0);
}
#end
@@ -1326,7 +1318,7 @@ class RenderPathDeferred {
#if (rp_background == "World")
{
if (UITrait.drawWorld) path.drawSkydome("shader_datas/world_pass/world_pass");
path.drawSkydome("shader_datas/world_pass/world_pass");
}
#end
@@ -1414,8 +1406,7 @@ class RenderPathDeferred {
}
#else
{
if (!UITrait.drawWorld) path.clearTarget(UITrait.worldColor, 1.0);
else path.clearTarget(null, 1.0);
path.clearTarget(null, 1.0);
}
#end
@@ -1459,7 +1450,7 @@ class RenderPathDeferred {
#if (rp_background == "World")
{
if (UITrait.drawWorld) path.drawSkydome("shader_datas/world_pass/world_pass");
path.drawSkydome("shader_datas/world_pass/world_pass");
}
#end
BIN
View File
Binary file not shown.