Tsar Hoikas wrote:Korman's page management actually works more like the 3ds Max plugin. On every object, there is a "Plasma Object" block with a checkbox beside it. If you want the selected object to be exported, you enable that box. The first time you click it, a "Page" property will be initialized. It will select a page whose number is the same as the layer the object is on. You're free to change that however. Pages are identified to you by name (not by number--that's an implementation detail).
Now that sounds really great. This would make everything at lot easier.
Tsar Hoikas wrote:We know the Uru engine, what it expects, and what it's designed for. I mainly want to know how you would like to work with material nodes. I'll figure out how to translate them to Plasma materials.
See, Adam, we the designers do not really know all Plasma's features when it comes to materials. Ok, some may, I know some as well, but most of my knowledge is derived from what PyPRP1 provides and does. Plus some ideas I got from the forums when someone was asking "I can't find this or that option. Oh wait, there's no bumpmap option at all? And no specular maps?". It's not really clear to us if it's just Plasma that does not support specular maps or PyPRP1.
So what are the options we are talking about?
I know that Plasma can handle (derived from PyPRP1 options):
- Object color
- Specularity color
- Specularity value
- Reflection value
- Hardness (not sure)
- Ambient value
- Emit value
- Shadeless option
- Texture amount (or whatever the Col slider in Map To should be called)
Please correct the list if needed, and add options plasma supports.
Give us some names, then we can think about how we would set this up in nodes.
And maybe there's a misunderstanding regarding nodes. Do you want to use the node system just internally for calculations, and provide a GUI with checkboxes, dropdowns, value fields like the Max plugin instead?
Or do you expect us really to setup material nodes for each material like shown in these images:

(Source:
http://wiki.blender.org/index.php/Doc:2 ... pes/Vector )
I for sure must make myself more familiar with those nodes, but currently I'm thinking "Why must I setup such complex operation trees with lots of windows for each material when I could do the same before by simply entering some values here and there in already available fields?"
See, we are not talking about some few materials. We are talking about hundreds. Relativity for example uses about 300(!) different materials currently. And that's not overdosed, but low average. All those materials are needed because each object has it's own lightmap, and therefore you can't re-use the same material even if it is similar, but you have to create a new (copy works well though) to assign a different lightmap. And most objects are multi-material objects.
This would mean to draw 300 node trees.
I'm sure you have reasons for preferring the node system.
First I assume it must be fun to play with nodes, and write Python code to manage them nicely. That would truly be a respectable reason and not underrated; the motivation for writing tools for age building is the same as Age builders have: It's just fun to explore all the possibilities, and positive feedback from the community is the bread we all work for.
Then the reason could be that using nodes is the only way to get the display in Blender more similar to Plasma. If that's the reason, then it must be.
A third reason - and I assume that's it mostly - is that you want to give us just state of the art tech for Age building. Great, and really appreciated, but if we can get this only for the cost of slowing down the building process and confusing most of the builders - reading the thread gives me the impression noone is really familiar with nodes - and we don't have much Age builders left - then I fear some may not like Korman that much as you expect.
I really can't tell pro or dont currently, and howto not at all; starting to explore material nodes in 2.67 now, to get a feeling how complex node trees for average materials will grow.
Tsar Hoikas wrote:I would like for Korman to use blender lights to preshade as much as we can and hide the whole "shadeless" thing as an implementation detail. Hopefully, this will automate the majority of your workflow.
I only have vague ideas of the pain involved in creating good ages with PyPRP, but it's enough to make me cringe. One of the design decisions I made when starting Korman was that PyPRP (both versions 1 and 2) exposed way too much in the way of Plasma baggage to the user. I'd like for there to be enough options for you to do awesome things. But, at the same time, there is really no need for us to be tweaking things like drawable flags in some crazy YAML file

I understand your motivation, and really appreciate it. We should get rid of too much Plasma baggage.
Regarding the pain involved in creating good ages, I can tell you it has not so much to do with material settings directly. When you've build for a while, you get a feeling what values to chose as a starting point. Then you visit the age, and tweak the values slighly, and that's it. The real pain comes into play when you bake lightmaps; from now on you are in trouble, because most of the values (Amb, Spec, ObjColor, Reflection, Shadeless, ...) are used for export AND the Blender rendering/baking process. This makes the whole process badly reproduceable.
For example, you've nearly finished an object, its lightmap is done, but because the objects needs a bit more light in the game, you increase the Amb, Emit or Reflection value slightly, and just export again without baking the lighmap again. Then, if you have to re-bake your lightmap later because you added more objects, the lightmap will come out completly different, which will require further tweaking again.
That's something we must absolutely get rid of.
Jogi mentioned how he does that in PyPRP1 by using different material assignments (OBject or MEsh) for rendering and export, to get rid of this problem.
I can imaging to have completely separated material settings for baking and Plasma in Korman, where the (already available) material options in Blender are used for baking, while a new set of material options (those you add) are used for export and Plasma only.
EDIT:
For your convenience, here's a document I wrote describing how we (Calena and me) are baking lightmaps currently.
It shows well how difficult it is, because you can't store optimal values in the design file, based on the fact that most values are used for both export and baking, so you have to change those values manually again and again on each baking process.
Relativity_Lightmap_Baking_V02.pdf