Artist Feedback Requested

If you feel like you're up to the challenge of building your own Ages in Blender or 3ds Max, this is the place for you!

Re: Artist Feedback Requested

Postby Calena » Tue Jul 02, 2013 1:37 pm

I thought of something that would be a huge help if it's feasible to do. I think it might be doable, but I don't know enough to make that call.

We've been studying the new lighting methods and one thing that I think all the artists will agree on is that it isn't simple. It requires going through multiple menus and checking and unchecking a variety of settings in each menu. We haven't even gotten to the bottom of it as far as which settings will consistently produce the best results in Plasma, but we're getting closer. Well, by we I mean the people that I know have been studying this; me, dendwaler, Sirius and tachzusamm.

The thought I had was to create a popup that pulls all the necessary menus into a single window and even possibly turn off some features by default and turn others on by default. As it stands now, it takes forever to go through all the different menus and settings needed to create the lightmaps. And at least for this old lady, it's ridiculously easy to overlook one of the way-too-many vital settings that go into making a good lightmap :oops: .

Also, if we could get all these settings consolidated into a single window that could be called when we're ready to bake the lighting, it would make it a whole lot easier to teach new artists and bring them up to speed to create good looking ages. Does this sound like something that could be possible and reasonable to code?
Galatians 2: 20-21

"Don't mess with me today. I have my CAPS LOCK key and I know how to use it!"
User avatar
Calena
 
Posts: 222
Joined: Thu Jan 13, 2011 11:38 am

Re: Artist Feedback Requested

Postby Tsar Hoikas » Tue Jul 02, 2013 2:34 pm

Calena wrote:Lightmaps can be baked in a few seconds, but high quality ray-traced lightmaps on complex geometry can still take 20 minutes to pre-bake on big modern machines. Imagine what that will do to the export time on a large age.


True. Cyan's plugin has an option that allows you to turn off lightmap generation, and I was thinking that we would offer something similar. One of the problems with PyPRP 1 is that the export just takes way too freaking long--I'd rather Korman not suffer from the same problem. I actually have a branch of PyPRP that I've tried to optimize somewhat. It's quite a bit faster for the "average" use cases, but I'm very afraid to release it because I'm afraid that it would break use cases that I haven't been able to test.

Calena wrote:[...] ]if we could get all these settings consolidated into a single window that could be called when we're ready to bake the lighting [...]


This is pretty much what we're aiming to do. Another of the problems in Blender 2.4x and PyPRP was that we could only use the settings from the blender panels, hence why we have bad defaults, strangely mapped settings, and other confusion. Blender 2.6x allows us to hide and even totally remove things from the UI, and we are very much planning to do so. Uru and Blender's rendering are quite different, so we're going to salvage what we can from Blender and add Uru settings as well, ideally all in the same panel. We really want lighting to be "easy" (read: not impossible), so this is a pretty big thing for us.

There was also someone who wanted some prebaked modifiers (can't find the quote, sorry!). That occurred to us too. One of the thoughts I've had is to bake light halos (and their associated billboards) so that there's less work for you. You just plop in a light, check "bake halo" and bam-wham you have a light halo just like those in Ae'gura. We're also thinking that some of the more common logic sequences should be easy to add, but that's a bit farther down the road than geometry and materials ;)

Calena wrote:We should probably put a disclaimer in here for the sake of the dev's and everyone's sanity that no amount of fancy software or hardware will ever take the place of a good artist, hard work and commitment to quality. But if we're going to dream, I would like you to code a plugin that allows me to scan a photo of a really cool place and have a "make age" button that turns it into a full fledged working age in Plasma :D


Heh, I'm glad you say that. One of the reasons we never asked for input on PyPRP1 was that "everybody" (read: people who posted on the MUOL forum in 2007) would come here with the usual grand ideas. They wanted a library of prefab objects to plop around to make an "age." Or they wanted to use the D'ni language to make an age (never mind how little of said language is actually known). We were all a little sour after that and tended to "patches welcome" (in other words, you code it yourself) to all feature requests.
Image
Tsar Hoikas
Councilor of Technical Direction
 
Posts: 2180
Joined: Fri Nov 16, 2007 9:45 pm
Location: South Georgia

Re: Artist Feedback Requested

Postby tachzusamm » Wed Jul 03, 2013 7:19 pm

Ok, count me in - I would love to help to make Korman a really awesome tool.
I wish you all the power of endurance which is needed to bring this project to a full-featured working toolset. Writing such a toolset is a LOT of work, I hope everybody of the designers is aware of this, and is appreciating your engagement as highly as I do.

Tsar Hoikas wrote:[..]Namely, materials. One of the problems in PyPRP1 and Blender 2.4 (aside from AlcScript) is that what you see in the blender render might be totally different from what you see in Uru. We would like to fix that by using the Blender 2.6 nodes system to export materials.[..]

It depends if materials look different. If you are using shadeless materials, which are not affected by any light source (neither in Blender nor in Plasma), textured materials look quite similar. I assume you already know that, just mentioning to better explain why shaded materials in contrast are difficult.
The visual outcome of shaded materials - which should be used rarely in an Age by the way - does not only depend of the material's settings itself, but also (and highly dependent) on the used light sources. This lies in the nature of shaded materials. If a surface appears bright, medium-lit, or dark, not only depends on the distance and lighting angle (face normal to light beam direction), but additionally on the behavior of the light source. That is, how it's falloff is defined. Inverse linear, logarithmic, cubic, whatever. And the maximum distance where virtual photons have effect, if applicable. So you only have a chance to make Blender renders compareable to the outcome in Plasma if you can ensure that light source behaviour is absolutely identical in Blender and Plasma.

Regarding the material settings itself, I'm wondering why using material nodes would help to better control the similarity in both worlds. Maybe you could provide an example, or explain a bit more?
Although I've used Blender (2.49b and 2.6x) for years now, I'm not really familiar with material nodes. Like denDwaler said, I'll have to learn about it more to be able to give valuable hints. I know what they are, how they work, and how they are supposted to be used in theory, but did not use them really often - because I was stuck to PyPRP1. I generally love the idea of them, you can easily create mathematical relations just by putting inputs, operations and filters and by simply dragging lines between them. I wish I had such a tool for daily real-life work with calculations, much more intuitive than Excel for example.
It could be great if we can use it in Age building, but I'm not sure if we really benefit from this. For setting multiply for example, to combine a basic face texture with the object's lightmap. Or for defining the specularity, hardness, or diffuse color of an object, instead of defining this at the material itself. How does this give an advantage?

This is how I use materials in Age building with Blender 2.49, and what I use them for:
- An objects gets as many material slot assigned as the belonging object would have different materials.
For example, a table consists of legs (e.g. steel), a frame (maybe wood) and the plate (could be glass) - so I would use three materials.
Those material slots are mainly used as a container for holding the different needed textures.
- In each material slot, I mostly put in two textures: One basic texture, plus a lightmap in multiply mode.
Some slots hold more than two textures, in cases where a material animation is needed, or where I want to blend between the basic underlying texture and a dirt map;
for example, the table legs get a stencil on their lower side to blend some grass or dirt/rust in. In this case, the material uses 4 textures: Basic steel, stencil, rust, lightmap.
The table frame may hold 4 textures as well, a different basic wood texture, a different stencil, some dirt, same lightmap.
The glass plate uses either a transparent texture only, or an additional environment map to simulate reflections. No lightmap here.
- For ground planes, there may be much more texture layers, e.g. basic grass (repeated often), coarse variation overlay (repeated less often), stencil, gravel, lightmap, cloudmap, and eventually additional layers.

- In case of a shadeless material, I use the Amb slider to control the overall brightness in the Age. Additional brightness can be added by using the Emit slider. In some rare cases, the color tone of the material can be adjusted additionally by the material color. Unfortunately you can't see the effect of this in the Blender GLSL shader viewport. Is this a case where using nodes would help?
- For shaded materials, I additionally use diffuse intensity (called Ref(lection) in 2.49), specular intensity, specular color and hardness. This does have an effect in the GLSL viewport, but comes out completely different in the Age.

If the goal is to speed up Age building, I'm not sure that using the Blender renderer will be of help. You are talking about the internal renderer, or Cycles, by the way?
Example: I'm currently working on Relativity. Exporting the Age as it is currently takes about 1-2 minutes. Firing up Uru and entering the Age takes about additional 1-2 minutes. So the overall time to "go have a look" is about 3 minutes. Starting a render of the current scene in contrast takes about 7-8 minutes (in 2.67), even if I render at only 50% size. That's not faster; I assume we would need a high-speed multi-core PC to have an advantage. The best way would be to get the GLSL shaders viewport do the job just in time - if possible.

If you plan to use automated lightmap baking, there should be an option to chose which lamps to export with the Age, which to use for baking - or which to use for both (shared).
This can already be used in the 2.49/PyPRP combination.
For lamps, I normally set up them this way:
1. I create lamps for lighting my avatar and set rendering OFF for them (the image icon in the outliner) - this way they are only exported to URU but are not used for lighmap baking
2. I create additional lamps for lighmap-baking and add a property "String, page_num, 12345" to them - this way they get not exported to URU, but are use for baking.
This way, you have a lot of control over your lighing of the Age. This is essential because the lamps behave so different in URU and Blender - especially because there's no such thing as "environment lighting" in Plasma, as far as I know. So you HAVE to add extra lamps to lighten up your avatar from below as well - which in contrary will look bad for all other objects.

Finally, here are some examples of how materials look different in a Render, in GLSL, and in Plasma. You'll notice that shadeless materials (the walls) don't look very different at all, mostly the shaded (real-time lighting) objects are a problem, like the balls on the banisters and some banister metal. And transparent materials (the leaves) are a special chapter.

Relativity Render:
Relativity-Render.jpg
Relativity-Render.jpg (139.34 KiB) Viewed 4054 times



Relativity GLSL shader (viewport):
Relativity-GLSL.jpg
Relativity-GLSL.jpg (183.52 KiB) Viewed 4054 times



Relativity URU Plasma:
Relativity-Plasma.jpg
Relativity-Plasma.jpg (147.76 KiB) Viewed 4054 times
User avatar
tachzusamm
 
Posts: 575
Joined: Thu May 29, 2008 2:03 am
Location: Germany

Re: Artist Feedback Requested

Postby Jogi » Thu Jul 04, 2013 4:58 am

Hey, really good news to hear from Korman!

Node System
I've already started with material nodes in Blender 2.49b. Since I try to generate all my textures from Blender's procedural materials, the texture layer system isn't sufficient.
And because of the Cycles Render in Blender 2.6 I've also checked out some tutorials for using nodes in this version.
The only disadvantage I can think of a node editor is that it occupies much more space in the user interface. So I think it's a good thing.


Age Pages
With PyPRP1 objects are assigned to a page/prp-file by the page_num property. With PyPRP2 all the objects in the same Blender scene go into one page, as far as I experienced (didn't do much with PyPRP2). I like the second method. But then we need an option/a property to exclude things in a Blender scene from exporting.


Material settings for export to Plasma and material settings for Baking
To handle these two different settings up to now I link my materials for Plasma to the mesh's datablock (as needed) and the materials for baking within Blender to the object's datablock.
- PyPRP1 ignores the materials of the object's datablock
- Blender only bakes the activated material which always can be that one from the object's datablock, even while exporting.

I'd appreciate to have a clear system for that in Korman.
User avatar
Jogi
 
Posts: 36
Joined: Sat Feb 04, 2012 6:30 pm
Location: Germany BW

Re: Artist Feedback Requested

Postby Jojon » Sun Jul 07, 2013 11:45 am

I may be a bit of an odd case, but I'd take something that gives a 1:1 (EDIT: ...technical...) represention of the materials and layers, such as they are in a PRP, even if that meant we couldn't have Blender approximate their likeness at all. :7
Jojon
 
Posts: 1116
Joined: Sun Sep 30, 2007 5:49 am

Re: Artist Feedback Requested

Postby Deledrius » Sun Jul 07, 2013 12:29 pm

Jojon wrote:I may be a bit of an odd case, but I'd take something that gives a 1:1 (EDIT: ...technical...) represention of the materials and layers, such as they are in a PRP, even if that meant we couldn't have Blender approximate their likeness at all. :7

Do you mean like the representation available in PRPShop?
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1377
Joined: Mon Oct 01, 2007 1:21 pm

Re: Artist Feedback Requested

Postby Jojon » Sun Jul 07, 2013 2:30 pm

Deledrius wrote:
Jojon wrote:I may be a bit of an odd case, but I'd take something that gives a 1:1 (EDIT: ...technical...) represention of the materials and layers, such as they are in a PRP, even if that meant we couldn't have Blender approximate their likeness at all. :7

Do you mean like the representation available in PRPShop?


Kind of...

If Plasma objects had direct analogs in Blender nodes, looking much like PrpShop windows, that would admittedly make for some rather large and cumbersome bits of GUI, as well force us builders to learn a bit about the rendering pipeline and to muck about on a slightly lower level than today (with or without automatically enforced rules/error-/sanity_checks, put in place by the inkmakers)...

BUT there would be none of the unclarity and behind-the-scenes "magic" that comes with translation.
-If you set the Alpha flag for a layer, you know you have set it, without having to associate it with a Blender button that has a "similar function", and without having five other rules-of-thumbs and bits-of-conventient-automation, triggered by different parts of the exporter, "changing it behind your back".

It just feels like you have a little bit of comforting control, when you work directly towards the actual final target platform, than when you write in Swahili and then feed the text through Google Translate to get English.
At least you have only yourself to blame when things don't work. :)


I have no idea what so ever how complicated it is to either write Blender editor shaders that mimick Plasma's behaviour, or a conversion script that can take a Plasma-centric "source" node chart and create an equivalent Blender material, based on that (whenever you change the "source"), only for use while editing in Blender. (...but as I mentioned; I might even find it acceptable to work "blind".)

Blabber incoherently,though; that I can. :7
Jojon
 
Posts: 1116
Joined: Sun Sep 30, 2007 5:49 am

Re: Artist Feedback Requested

Postby dendwaler » Mon Jul 08, 2013 3:07 am

Yogi wrote:
Age Pages
With PyPRP1 objects are assigned to a page/prp-file by the page_num property. With PyPRP2 all the objects in the same Blender scene go into one page,
as far as I experienced (didn't do much with PyPRP2). I like the second method.
But then we need an option/a property to exclude things in a Blender scene from exporting.


I like the contrary, the way it is organised in PyPRP1 and absolutely do not want to go back to a single prp file.
In another thread i already explained the many problems i had when my age in developement grew to heavy to be able to export it any longer.
8 Gb of internal ram was not enough and i got "out of memory errors."
I already had spliited up my age into several pages, but it did not help.
Then Sirius solved this problem . He changed the export script.
Now it is possible to export "page by page" , after each page export, the sum and fni file are also updated.
This reduced export times enormously!
When i export the age completely as shown in the picture, the export time is about 4 times faster then it was before this change!
Also its now possible to to only export the page of the area you are working in.
This again is much , much faster.
This made me change my normal workflow.
I made a new page called " new-objects"
Now i make an object and only export this one object, its done in seconds!
Then look how its is in game, alter it and repeat this until i am satisfied.
Then i change the pagenumber of this object to the page it belongs to, and export this altered page.
Then i continue with the next object.
Lamps , which are only in use for texture baking do get a pagenumber not excisting in the alcscript " book"
This prohibits them to be exported into the agefiles of Plasma.

In the second picture you get an impression of the dimentions of the amount of data in the age.
I could not have build this whitout several PRP files.


Image
Image
Those wonderfull Worlds are called " Ages" , because that is what it takes to build one.



Watch my latest Video Or even better..... watch the Cathedral's Complete Walkthrough made by Suleika!
User avatar
dendwaler
 
Posts: 936
Joined: Mon Jun 22, 2009 10:49 am
Location: Nederland

Re: Artist Feedback Requested

Postby Jogi » Mon Jul 08, 2013 4:13 am

dendwaler wrote:
J(Y)ogi :) wrote:Age Pages
[...] With PyPRP2 all the objects in the same Blender scene go into one page,

I like the contrary, the way it is organised in PyPRP1 and absolutely do not want to go back to a single prp file.

Oh, that's a misunderstanding. In Blender you can create several scenes. And with PyPRP2 every object in those scenes goes into a corresponding, separate prp-file with a name similar to the scene's name, like "<name of the Age>_District_<name of the scene>.prp"!
And if you need a visual reference from an other scene in your current scene, you can blend one in as a background. And if I remember right my short tests one year ago, PyPRP2 exports only one scene at once, namely the current selected one.

Image
User avatar
Jogi
 
Posts: 36
Joined: Sat Feb 04, 2012 6:30 pm
Location: Germany BW

Re: Artist Feedback Requested

Postby tachzusamm » Mon Jul 08, 2013 4:18 am

dendwaler wrote:8 Gb of internal ram was not enough and i got "out of memory errors."
I already had spliited up my age into several pages, but it did not help.
Then Sirius solved this problem . He changed the export script.
Now it is possible to export "page by page" , after each page export, the sum and fni file are also updated.

Off-Topic: Would you share those changes? I'm highly interested. :)
(Maybe start another thread in Scripting to avoid further off-topic discussion about it here)

Back to on topic: I would appreciate it too if we can keep pages seperated. In my understanding Jogi did not suggest to put just everything into a single PRP file; he wants to keep pages separated. As do I. But instead of adding a property "page_num" to each single object, you define to which page an object belongs to by simply putting it into the appropriate scene. Sounds nice. It would be a great idea though if we can still use a page_num property, which would override the page number given by the scene if this property is set. This way you could work by the scene method and do not care about page_num settings, but if needed, you could still set page_num to assign objects to other pages - or completely mark them as "not to be exported".
User avatar
tachzusamm
 
Posts: 575
Joined: Thu May 29, 2008 2:03 am
Location: Germany

PreviousNext

Return to Building

Who is online

Users browsing this forum: No registered users and 5 guests

cron