Here are the major changes since the first early access release.
The most important change is the addition of procedural lights. Under Object->Create Primitive, you'll find two new options: Procedural Point Light and Procedural Directional Light. These lights are defined by a procedure whose input is the point in space at which the light is being evaluated (specified in the light's local coordinate system), and whose outputs are the color and intensity of the light at that point. This allows you to do all sorts of useful things: have a light that projects an image, or whose intensity varies with distance in a nonstandard way, or things like that.
Be aware that using procedural lights with photon mapping will often not work very well. Photon mapping assumes a physically accurate lighting model, whereas procedural lights enable lots of nonphysical lighting effects that can't be mapped well to that model.
Another new lighting feature: directional lights can now cast soft shadows. Each directional light now has an "angular radius" property that determines how sharp its shadows are.
Nik has made a bunch of changes to the architecture for theme handling. I'll let him describe those changes, but the main goal is to let tool icons have reasonable default appearances for new themes, even if those themes don't specifically support them.
Finally, I've made some minor UI improvements, of which the most noticeable is that I've rearranged the menus and menu items in the main window. I believe the new arrangement will be more intuitive and convenient, but I'd appreciate your feedback on it.
One consequence of the rearrangement is that some plugins which added items to menus are now adding them in the wrong place, since they just hardcoded the index of the menu to use. To allow a more robust behavior, LayoutWindow now provides methods for getting all of the menus - getFileMenu(), getEditMenu(), etc. Plugins should now use those methods to look up the menus they want to modify.
Enjoy!
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Firstly, thanks Peter, this EA looks really interesting - I can't wait to play with procedural lights myself! :o)
Secondly, I'll try to summarise the changes to the Theme system.
...But first, let me tell you all a wee story...
I'm currently in India (again), and arrived here early last Friday morning. Later that day, I went to my customer's premises, plugged my notebook in and proceded to set up for my presentation. About 2 minutes later my notebook apparently wanted my attention, and so tried getting it with a small "popping" noise accompanied by a wee cloud of smoke. Since this apparently didn't get the desired response from me - my notebook hasn't spoken to me since...
The upshot is that I don't have immediate access to the documentation that I had prepared regarding the new Theme logic.
So following is a newly-written summary, and I will post links to more detailed notes and JavaDoc a little later.
1. Goals
(i) enable all tool-buttons to integrate automatically into any and all existing themes.
- Currently a new Theme can provide tailored tool-buttons for specific plugins, but there is no way to automatically apply to all plugins, nor can a new plugin easily integrate into all existing Themes.
(ii) reduce the amount of work a plugin developer has to do to add tool-buttons to a plugin
(iii) enable reasonable defaults for tool-buttons, to ensure that an error in a plugin does not make the rest of AOI unusable.
(iv) maintain compatibility with existing themes and code.
2. Changes
(i) A theme can now describe the common visual behaviour of all icons in such a way that the AOI theme logic can apply that visual behaviour to any button icon. This is quite different to the previous logic that embedded icon behaviour in each individual icon - by requiring multiple variants of the icon to be supplied: one for each visual state (typically "selected" and "unselected") of the icon.
This does require a change to each theme definition, but the change is just a couple of extra lines in the theme.xml file, and possibly removing redundant variants of icons.
I have created modified versions of the Default AOI theme, the ElectricWax theme, and the DisplayIcons plugins, which I will enable in the repository shortly.
(ii) Because of change (i) above, a plugin developer now only needs to provide a single icon for each tool instead of two. And better still, that single icon will be integrated automatically into all updated themes.
To take advantage of this feature, the plugin developer should provide an icon of suitable size and with a transparent background. The Theme system can then resize this as appropriate and use it when generating the icon (typically by overlaying it onto the appropriate background).
(iii) By centralising the icon behaviour, and eliminating the need for multiple variants of each icon, the new code can provide useful defaults for icons, meaning that the tool palette is never asked to render a null or oversized icon, which in turn means the palette is still usable even if a tool-button definition contains errors.
To avoid an impossibly large post, I'll just briefly describe how the theme-level icon behaviour is defined, and then I'll post links to more detail separately.
So for Theme developers, here is what has changed:
A new <style.../> element in the theme.xml has been defined as a child element of the <button...> element. This <style> element defines the button owner that it applies to eg: artofillusion.ui.EditingTool for buttons in the tool-palette, and some global values such as icon size (in pixels) and the default icon to use if a specific one is not found (eg, due to a typo in a plugin definition).
Now for the interesting part: the <style.../> element of the theme also defines how to assemble the various variants of a tool-button icon from any button-specific icon. This is done by a new ability (class) in AOI that can generate an icon based on a sequence of commands or instructions. Attributes in the <style.../> element can therefore define a "macro" of graphical operations that are applied in sequence to consistently generate any button icon.
As an example, here is the new <style.../> element for the AOI default theme:
This states that for this theme, the ToolButton icons are 32x32 pixels, and specifies the name of the icon file to use when a specific icon is notFound.
Then, the "normal.icon" attribute defines how this theme generates a normal (unselected) ToolButton icon:
first take the image file within the theme named ButtonBackground, and overlay the specific button icon image onto that. (Not very exciting...)
For the selected icon, the sequence is a little more interesting:
first take the image file in the theme named selected/ButtonBackground, then overlay the specific button icon onto that, after having applied a 1 pixel offset on both X and Y axes to the icon (this enhances the 3D effect in the default theme when shifting from unselected to selected).
Similar processing for the ElectricWax theme defines the behaviour of its icons.
The kind of graphical operations that are supported by this macro language include:
- composit: overlay one image over the current image
- add or subtract a value to/from some or all colour components of each pixel (shift the colour of the pixels)
- multiply some or all colour components of each pixel (shift, lighten or darken the pixels, or make them more or less transparent)
- feather: progressively fade pixels to transparent
- resize: crop or increase the area of the current image
- position: apply offsets to the 3 possible axes of an image (x, y, z), where x and y shift left/right and up/down, and z shifts in/out to create 3D effects.
- scale: resize the current image by scaling it.
Ok, I'm done. Once I've enabled the updated plugins and themes in the repository, I'm looking forward to people's feedback. :o)
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Oh no! You let the magic smoke out of your laptop? Magic smoke is what makes electronic components work! If you let it out, they don't work anymore.
I'll just add one detail to Nik's explanation. All of the options he described for generating icons are defined by DefaultToolButton. If you define a custom ToolButton subclass, you have complete freedom to generate icons in any way you want - drawing an outline around the image, applying a bloom filter to it, or anything else you can think up. DefaultToolButton provides enough options to meet the needs of many themes, but if you're willing to do a bit of programming, you're not limited to them.
Also, a theme designer has the option of continuing to provide hand drawn selected and unselected icons, just as you always have in the past. But the theme should still define how to generate icons from a single transparent image, so that it will be able to provide reasonable looking icons for new tools defined by other plugins.
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, so if I push some magic mushrooms thrugh the slots into the notebook and then burn the mushrooms like incense, woulld that do the trick, do you think?
> That may not be very far from the truth if you think
> of the big bang as magic smoke
Well, I actually think the big bang is closer to magic mushroom smoke than anything else - but I still agree with your initial conceit, since I think the evidence that the Universe is an electrical phenomenon is far more scientific than the pseudo-science explanations.
Cheers!
Nik
(Who is currently using a borrowed Vista machine and finding the experience so "unique" that he is seriously considering going back to the smoking notebook as an upgrade...)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> Ok, so if I push some magic mushrooms thrugh the slots into the notebook and then burn the mushrooms like incense,
> woulld that do the trick, do you think?
I would suggest eating them while pretending to work on your old notebook; or building a time machine (a glorified undo command for reality); or "waiting" until the universe starts its reverse oscillation, crunches, a new version of it big bangs, and then a new version of Peter begins creating new versions of AoI.
(It may already be happening at a [self-]similar fractal-branch in the space-time continuum.)
Rich
(Who finds reality unique enough without the smoke ;)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I haven't had time to *fully* dive in, but here is a first blush:
The angular radius on the directional lights seems to work great! It's a feature I wanted :) Tested the angles and it seems accurate.
I like the new locations of menu items even if it takes time to re-train myself.
I really want a way to make a point light where I procedurally specify brightness based on the angle the ray of light is leaving the point. Is this possible with procedural lights? It looks like the new procedural lights do differently, but while you are on a roll with lights I figured I'd suggest... ;)
In the procedural light editor's preview window, it would be nice if the ambient light were turned off... I like a completely dark model to start with when designing lights :)
In a value module if I type in 0.8333422 (and I really do need that accuracy in this case) it keeps the accuracy internally but when I leave and return the dialog box rounds to only three digits in the input box. And I notice this happening all over the place in AoI. It would be nice if it showed me what I entered without messing with it ;)
Also, the custom function editor dialog doesn't resize well (the graph stretches only horizontally) so it's hard to get accuracy.
While we are moving menu items it might be a good time to look at button layout too. It would waste less screen space if the left side buttons were in a single column and did vertical wrapping when necessary. Also, the hologram plugin adds it's own button to the left bar. But the button appears in a different place each time I load AoI. It could be annoying since it displaces other buttons.
Is Francois still around? ;) According to a dialog that appears whenever a main window starts: an error occurred communicating with the "DisplayModeIconsPlugin" plugin. Even though it seems to work fine.
I'll hopefully have time to play more this week... maybe.
Thanks again everyone!
- John
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm back from India now, and have had the smoking laptop repaired and have been working on updating those plugins my changes to AOI27ea2 have affected:
1. Hologram - done, a 2.7 compatible version is in the repository
2. ElectricWax theme - previously done, but currently showing unexpected problems. I'm hoping to sort them out in the next 2 days
3. DisplayModelIcons - still work, but flag an error due to a mthod in the API being made deprecated.
Francois, let's talk in the next day or so to make sure everything is sorted smoothly.
BTW: The laptop is an HP which came with a 3 year business grade guarantee, which HP honoured to the letter: the next business day, an engineer was sent on site at our offices complete with replacement parts. I am very impressed.
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> I really want a way to make a point light where I
> procedurally specify brightness based on the angle the
> ray of light is leaving the point. Is this possible with
> procedural lights?
Definitely. The emitted light can vary with position in any way you want. The easiest way to do this is to stick in a spherical transform module, and then calculate the intensity based on its theta and phi outputs.
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have uploaded a modified ElectricWax plugin jar into the repository.
If you have both this and the Hologram plugin running under AOI 2.7ea2, then you should see the improved integration (compare the Hologram icon with the AdvancedCurve plugin as you switch themes).
... I still haven't caught up with Francois yet regarding the DisplayModeIcons or Implicit plugins - it seems our Pandas are not currently aligned...
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is strange, I created a 2d procedrual texture, and when the editor opened the preview wasn't there and I couldn't close the editor by any button (okay, cancel, or the window's X close button). It happens with 3d procedural textures too. And when I create a uniform or image mapped texture the editor never appears and it freezes the texture list window. The exception that is thrown seems to depend on the run. Most of the time it throws:
java.lang.OutOfMemoryError: Java heap space
at artofillusion.math.Vec3.plus(Vec3.java:81)
at artofillusion.object.Sphere.subdivideSphere(Sphere.java:273)
at artofillusion.object.Sphere.getRenderingMesh(Sphere.java:183)
at artofillusion.object.ObjectInfo.getBounds(ObjectInfo.java:358)
at artofillusion.MaterialPreviewer.init(MaterialPreviewer.java:92)
at artofillusion.MaterialPreviewer.<init>(MaterialPreviewer.java:57)
at artofillusion.texture.UniformTexture.edit(UniformTexture.java:152)
at artofillusion.TexturesDialog.showNewTextureWindow(TexturesDialog.java:209)
at artofillusion.TexturesDialog.doNew(TexturesDialog.java:86)
But once it threw:
java.lang.NullPointerException
at artofillusion.texture.ProceduralTexture2D.updatePreview(ProceduralTexture2D.java:354)
at artofillusion.procedural.ProcedureEditor.updatePreview(ProcedureEditor.java:718)
at artofillusion.procedural.ProcedureEditor.undo(ProcedureEditor.java:710)
at artofillusion.procedural.ProcedureEditor.actionPerformed(ProcedureEditor.java:443)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at buoy.internal.EventLinkRecord.dispatchEvent(EventLinkRecord.java:81)
The problem happened with both the JAR version and the Windows launcher. I don't remember it happening on my home machine (Win XP Home) but it happens every time on my work machine (Win XP Pro). I'm using the latest Java runtime environment from java.com on my work machine (and I think at home, too). The major difference between the two computers seems to be that my work machine is dual core (Intel Core 2) and has a lot more RAM (2 GB). My home machine is a P4 with 512 MB (don't laugh, just donate money ;) Let me know if I can offer any more information. Thanks!
- John
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I would check how you are invoking the 2.7ea2 version of AOI. It seems to have a fairly limited amount of memory available.
One common cause of this is a typo in the invoke command:
"java -Xmx256 -jar ArtOfIllusion.jar"
will give problems rather like those you have described.
The *correct* command would actually be:
"java -Xmx256m -jar ArtOfIllusion.jar"
(Note: on windows, you may be using "javaw" instead...)
Note that you need to specify "m" after the memory size specification. If you forget the "m", you are specifying *bytes*, and 256 of them is not much at all. In fact, I presume in this case, Java uses some minimum size.
If this doesn't fix your problem, post back telling us how you are starting up AOI 2.7ea2, and we'll help you sort it out. There is also a page on this in the AOI Wiki.
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Unfortunately I am starting AoI correctly and getting the exceptions above. I tried it both with the exact command Nik suggested and (get this) with the Windows Launcher which specifies the memory settings for me. :/
- JOhn
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hrm, this is so strange. On my work computer I thougth that the dual-core was causing problems since it works fine on my home (single core) computer. So I went into BIOS and turned off the extra core (turned off "core multiplexing"). But the bug still happened. So it may not have to do with dual cores.
- John
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As a second issue, I tried rendering on Vista today and the render dialog won't appear. I upgraded Java to the latest and it still doesn't work. I instlaled the log plugin and it didn't show an exception. I'm a bit befuddled. "Render Immediately" causes the hourglass (er, blue circle on Vista) to show forever, but I can still close AoI (and it closes right away, too, so it's not really hung). Anyone else have this problem?
- John
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> As a second issue, I tried rendering on Vista today and the render dialog won't appear
Hmmm, I don't know much about that. I *do* know I have customers who develop Java software and they *cannot* use Vista - Vista has changed enough things that their (Java) development tools simply don't work on it.
However, I've not heard of non-development Java programs failing to run on Vista.
Do a search in these forums; there have been a couple of other people posting with problems and resolutions regarding Vista - something to do with where (and where not) to install AOI.
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, I've managed to get some event at least similar to those you've described.
So far, I only see it under Windows.
Whenever I try to create a Cylinder, I get a pregnant pause, and then an OutOfMemory error is being reported. Given the information you've also provided, this seems to be some form of infinite loop somewhere - probably being triggered by some other error.
I'll keep looking at this - although I am actually trying to work on other projects as well :o/
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can see *part* of the problem on my machine - and it would help if I knew if this is the same on yours.
Could you please open the Preferences dialog "Tools | Preferences"?
I suspect that in the AOI installation which is giving errors, you will see a number of invalid (or actually uninitialised) values:
"interactive surface error=0.0"
is probably the cause of the OutOfMemory errors, as this value will probably cause AOI to continually subdivide curved surfaces (eg Sphere and Cynlinder) until it has run out of memory...
I can't tell what has caused this situation.
The installation where I am seeing it is a brand-new installation of AOI2.7ea2 installed on Windows using the installer.
The version where I have not encountered the problem was installed from the non-platform ZIP file.
Sadly, any attempt to enter a useful (non-zero) value for "interactive surface error" results in an exception and the Preferences Dialog dies.
I think the only solution is to reinstall, perhaps from the ZIP, or copy in a working preferences file.
Let me know if either (or both) of these fix your problem.
Cheers!
Nik
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The second early access release of Art of Illusion 2.7 is now available:
http://www.artofillusion.org/ArtOfIllusion27ea2-Linux.zip
http://www.artofillusion.org/ArtOfIllusion27ea2-Mac.dmg
http://www.artofillusion.org/ArtOfIllusion27ea2-Windows.exe
http://www.artofillusion.org/aoi27ea2.zip
http://www.artofillusion.org/aoisrc27ea2.zip
Here are the major changes since the first early access release.
The most important change is the addition of procedural lights. Under Object->Create Primitive, you'll find two new options: Procedural Point Light and Procedural Directional Light. These lights are defined by a procedure whose input is the point in space at which the light is being evaluated (specified in the light's local coordinate system), and whose outputs are the color and intensity of the light at that point. This allows you to do all sorts of useful things: have a light that projects an image, or whose intensity varies with distance in a nonstandard way, or things like that.
Be aware that using procedural lights with photon mapping will often not work very well. Photon mapping assumes a physically accurate lighting model, whereas procedural lights enable lots of nonphysical lighting effects that can't be mapped well to that model.
Another new lighting feature: directional lights can now cast soft shadows. Each directional light now has an "angular radius" property that determines how sharp its shadows are.
Nik has made a bunch of changes to the architecture for theme handling. I'll let him describe those changes, but the main goal is to let tool icons have reasonable default appearances for new themes, even if those themes don't specifically support them.
Finally, I've made some minor UI improvements, of which the most noticeable is that I've rearranged the menus and menu items in the main window. I believe the new arrangement will be more intuitive and convenient, but I'd appreciate your feedback on it.
One consequence of the rearrangement is that some plugins which added items to menus are now adding them in the wrong place, since they just hardcoded the index of the menu to use. To allow a more robust behavior, LayoutWindow now provides methods for getting all of the menus - getFileMenu(), getEditMenu(), etc. Plugins should now use those methods to look up the menus they want to modify.
Enjoy!
Peter
Rock out. Thanks Peter! Can't wait to try those lights.
Posted to FS: http://www.friendlyskies.net/aoiforum/viewtopic.php?pid=14710#p14710
I admit it´s fun playing with the new prozedural lights.
Thanks for this preview Peter and Nik!
Harald
Firstly, thanks Peter, this EA looks really interesting - I can't wait to play with procedural lights myself! :o)
Secondly, I'll try to summarise the changes to the Theme system.
...But first, let me tell you all a wee story...
I'm currently in India (again), and arrived here early last Friday morning. Later that day, I went to my customer's premises, plugged my notebook in and proceded to set up for my presentation. About 2 minutes later my notebook apparently wanted my attention, and so tried getting it with a small "popping" noise accompanied by a wee cloud of smoke. Since this apparently didn't get the desired response from me - my notebook hasn't spoken to me since...
The upshot is that I don't have immediate access to the documentation that I had prepared regarding the new Theme logic.
So following is a newly-written summary, and I will post links to more detailed notes and JavaDoc a little later.
1. Goals
(i) enable all tool-buttons to integrate automatically into any and all existing themes.
- Currently a new Theme can provide tailored tool-buttons for specific plugins, but there is no way to automatically apply to all plugins, nor can a new plugin easily integrate into all existing Themes.
(ii) reduce the amount of work a plugin developer has to do to add tool-buttons to a plugin
(iii) enable reasonable defaults for tool-buttons, to ensure that an error in a plugin does not make the rest of AOI unusable.
(iv) maintain compatibility with existing themes and code.
2. Changes
(i) A theme can now describe the common visual behaviour of all icons in such a way that the AOI theme logic can apply that visual behaviour to any button icon. This is quite different to the previous logic that embedded icon behaviour in each individual icon - by requiring multiple variants of the icon to be supplied: one for each visual state (typically "selected" and "unselected") of the icon.
This does require a change to each theme definition, but the change is just a couple of extra lines in the theme.xml file, and possibly removing redundant variants of icons.
I have created modified versions of the Default AOI theme, the ElectricWax theme, and the DisplayIcons plugins, which I will enable in the repository shortly.
(ii) Because of change (i) above, a plugin developer now only needs to provide a single icon for each tool instead of two. And better still, that single icon will be integrated automatically into all updated themes.
To take advantage of this feature, the plugin developer should provide an icon of suitable size and with a transparent background. The Theme system can then resize this as appropriate and use it when generating the icon (typically by overlaying it onto the appropriate background).
(iii) By centralising the icon behaviour, and eliminating the need for multiple variants of each icon, the new code can provide useful defaults for icons, meaning that the tool palette is never asked to render a null or oversized icon, which in turn means the palette is still usable even if a tool-button definition contains errors.
To avoid an impossibly large post, I'll just briefly describe how the theme-level icon behaviour is defined, and then I'll post links to more detail separately.
So for Theme developers, here is what has changed:
A new <style.../> element in the theme.xml has been defined as a child element of the <button...> element. This <style> element defines the button owner that it applies to eg: artofillusion.ui.EditingTool for buttons in the tool-palette, and some global values such as icon size (in pixels) and the default icon to use if a specific one is not found (eg, due to a typo in a plugin definition).
Now for the interesting part: the <style.../> element of the theme also defines how to assemble the various variants of a tool-button icon from any button-specific icon. This is done by a new ability (class) in AOI that can generate an icon based on a sequence of commands or instructions. Attributes in the <style.../> element can therefore define a "macro" of graphical operations that are applied in sequence to consistently generate any button icon.
As an example, here is the new <style.../> element for the AOI default theme:
<style owner="artofillusion.ui.EditingTool" notFound="toolNotFound" size="32,32" normal.icon="ButtonBackground; {icon}" selected.icon="selected/ButtonBackground; {icon} @(x+1,y+1)" />
This states that for this theme, the ToolButton icons are 32x32 pixels, and specifies the name of the icon file to use when a specific icon is notFound.
Then, the "normal.icon" attribute defines how this theme generates a normal (unselected) ToolButton icon:
first take the image file within the theme named ButtonBackground, and overlay the specific button icon image onto that. (Not very exciting...)
For the selected icon, the sequence is a little more interesting:
first take the image file in the theme named selected/ButtonBackground, then overlay the specific button icon onto that, after having applied a 1 pixel offset on both X and Y axes to the icon (this enhances the 3D effect in the default theme when shifting from unselected to selected).
Similar processing for the ElectricWax theme defines the behaviour of its icons.
The kind of graphical operations that are supported by this macro language include:
- composit: overlay one image over the current image
- add or subtract a value to/from some or all colour components of each pixel (shift the colour of the pixels)
- multiply some or all colour components of each pixel (shift, lighten or darken the pixels, or make them more or less transparent)
- feather: progressively fade pixels to transparent
- resize: crop or increase the area of the current image
- position: apply offsets to the 3 possible axes of an image (x, y, z), where x and y shift left/right and up/down, and z shifts in/out to create 3D effects.
- scale: resize the current image by scaling it.
Ok, I'm done. Once I've enabled the updated plugins and themes in the repository, I'm looking forward to people's feedback. :o)
Cheers!
Nik
Oh no! You let the magic smoke out of your laptop? Magic smoke is what makes electronic components work! If you let it out, they don't work anymore.
I'll just add one detail to Nik's explanation. All of the options he described for generating icons are defined by DefaultToolButton. If you define a custom ToolButton subclass, you have complete freedom to generate icons in any way you want - drawing an outline around the image, applying a bloom filter to it, or anything else you can think up. DefaultToolButton provides enough options to meet the needs of many themes, but if you're willing to do a bit of programming, you're not limited to them.
Also, a theme designer has the option of continuing to provide hand drawn selected and unselected icons, just as you always have in the past. But the theme should still define how to generate icons from a single transparent image, so that it will be able to provide reasonable looking icons for new tools defined by other plugins.
Peter
That may not be very far from the truth if you think of the big bang as magic smoke.
For Nik:
http://en.wikipedia.org/wiki/Image:Steamtop.jpg
Looking forward to the Age of AoI 2.7.
Rich
Ok, so if I push some magic mushrooms thrugh the slots into the notebook and then burn the mushrooms like incense, woulld that do the trick, do you think?
> That may not be very far from the truth if you think
> of the big bang as magic smoke
Well, I actually think the big bang is closer to magic mushroom smoke than anything else - but I still agree with your initial conceit, since I think the evidence that the Universe is an electrical phenomenon is far more scientific than the pseudo-science explanations.
Cheers!
Nik
(Who is currently using a borrowed Vista machine and finding the experience so "unique" that he is seriously considering going back to the smoking notebook as an upgrade...)
> Ok, so if I push some magic mushrooms thrugh the slots into the notebook and then burn the mushrooms like incense,
> woulld that do the trick, do you think?
I would suggest eating them while pretending to work on your old notebook; or building a time machine (a glorified undo command for reality); or "waiting" until the universe starts its reverse oscillation, crunches, a new version of it big bangs, and then a new version of Peter begins creating new versions of AoI.
(It may already be happening at a [self-]similar fractal-branch in the space-time continuum.)
Rich
(Who finds reality unique enough without the smoke ;)
I haven't had time to *fully* dive in, but here is a first blush:
The angular radius on the directional lights seems to work great! It's a feature I wanted :) Tested the angles and it seems accurate.
I like the new locations of menu items even if it takes time to re-train myself.
I really want a way to make a point light where I procedurally specify brightness based on the angle the ray of light is leaving the point. Is this possible with procedural lights? It looks like the new procedural lights do differently, but while you are on a roll with lights I figured I'd suggest... ;)
In the procedural light editor's preview window, it would be nice if the ambient light were turned off... I like a completely dark model to start with when designing lights :)
In a value module if I type in 0.8333422 (and I really do need that accuracy in this case) it keeps the accuracy internally but when I leave and return the dialog box rounds to only three digits in the input box. And I notice this happening all over the place in AoI. It would be nice if it showed me what I entered without messing with it ;)
The custom function module "smooth curve" option always produces strange, unwanted results. It's not at all like the curve editors as I expect. Take a look at this screen shot: http://www.icrashedtheinternet.com/customFunctionProblems.JPG
Also, the custom function editor dialog doesn't resize well (the graph stretches only horizontally) so it's hard to get accuracy.
While we are moving menu items it might be a good time to look at button layout too. It would waste less screen space if the left side buttons were in a single column and did vertical wrapping when necessary. Also, the hologram plugin adds it's own button to the left bar. But the button appears in a different place each time I load AoI. It could be annoying since it displaces other buttons.
Is Francois still around? ;) According to a dialog that appears whenever a main window starts: an error occurred communicating with the "DisplayModeIconsPlugin" plugin. Even though it seems to work fine.
I'll hopefully have time to play more this week... maybe.
Thanks again everyone!
- John
Yes, I'm still around ;)
I've updated plugins though I think I still have a problem I've to discuss with Nik before releasing these updates.
François.
Hi All,
I'm back from India now, and have had the smoking laptop repaired and have been working on updating those plugins my changes to AOI27ea2 have affected:
1. Hologram - done, a 2.7 compatible version is in the repository
2. ElectricWax theme - previously done, but currently showing unexpected problems. I'm hoping to sort them out in the next 2 days
3. DisplayModelIcons - still work, but flag an error due to a mthod in the API being made deprecated.
Francois, let's talk in the next day or so to make sure everything is sorted smoothly.
BTW: The laptop is an HP which came with a 3 year business grade guarantee, which HP honoured to the letter: the next business day, an engineer was sent on site at our offices complete with replacement parts. I am very impressed.
Cheers!
Nik
> I really want a way to make a point light where I
> procedurally specify brightness based on the angle the
> ray of light is leaving the point. Is this possible with
> procedural lights?
Definitely. The emitted light can vary with position in any way you want. The easiest way to do this is to stick in a spherical transform module, and then calculate the intensity based on its theta and phi outputs.
Peter
Ooo sweet! Can't wait to play with it :) - John
Update:
I have uploaded a modified ElectricWax plugin jar into the repository.
If you have both this and the Hologram plugin running under AOI 2.7ea2, then you should see the improved integration (compare the Hologram icon with the AdvancedCurve plugin as you switch themes).
... I still haven't caught up with Francois yet regarding the DisplayModeIcons or Implicit plugins - it seems our Pandas are not currently aligned...
Cheers!
Nik
This is strange, I created a 2d procedrual texture, and when the editor opened the preview wasn't there and I couldn't close the editor by any button (okay, cancel, or the window's X close button). It happens with 3d procedural textures too. And when I create a uniform or image mapped texture the editor never appears and it freezes the texture list window. The exception that is thrown seems to depend on the run. Most of the time it throws:
java.lang.OutOfMemoryError: Java heap space
at artofillusion.math.Vec3.plus(Vec3.java:81)
at artofillusion.object.Sphere.subdivideSphere(Sphere.java:273)
at artofillusion.object.Sphere.getRenderingMesh(Sphere.java:183)
at artofillusion.object.ObjectInfo.getBounds(ObjectInfo.java:358)
at artofillusion.MaterialPreviewer.init(MaterialPreviewer.java:92)
at artofillusion.MaterialPreviewer.<init>(MaterialPreviewer.java:57)
at artofillusion.texture.UniformTexture.edit(UniformTexture.java:152)
at artofillusion.TexturesDialog.showNewTextureWindow(TexturesDialog.java:209)
at artofillusion.TexturesDialog.doNew(TexturesDialog.java:86)
But once it threw:
java.lang.NullPointerException
at artofillusion.texture.ProceduralTexture2D.updatePreview(ProceduralTexture2D.java:354)
at artofillusion.procedural.ProcedureEditor.updatePreview(ProcedureEditor.java:718)
at artofillusion.procedural.ProcedureEditor.undo(ProcedureEditor.java:710)
at artofillusion.procedural.ProcedureEditor.actionPerformed(ProcedureEditor.java:443)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at buoy.internal.EventLinkRecord.dispatchEvent(EventLinkRecord.java:81)
The problem happened with both the JAR version and the Windows launcher. I don't remember it happening on my home machine (Win XP Home) but it happens every time on my work machine (Win XP Pro). I'm using the latest Java runtime environment from java.com on my work machine (and I think at home, too). The major difference between the two computers seems to be that my work machine is dual core (Intel Core 2) and has a lot more RAM (2 GB). My home machine is a P4 with 512 MB (don't laugh, just donate money ;) Let me know if I can offer any more information. Thanks!
- John
I just noticed the memory exception happens when creating a sphere, too, but not when creating a cube, point light, camera, or simple curve.
Hi John,
I would check how you are invoking the 2.7ea2 version of AOI. It seems to have a fairly limited amount of memory available.
One common cause of this is a typo in the invoke command:
"java -Xmx256 -jar ArtOfIllusion.jar"
will give problems rather like those you have described.
The *correct* command would actually be:
"java -Xmx256m -jar ArtOfIllusion.jar"
(Note: on windows, you may be using "javaw" instead...)
Note that you need to specify "m" after the memory size specification. If you forget the "m", you are specifying *bytes*, and 256 of them is not much at all. In fact, I presume in this case, Java uses some minimum size.
If this doesn't fix your problem, post back telling us how you are starting up AOI 2.7ea2, and we'll help you sort it out. There is also a page on this in the AOI Wiki.
Cheers!
Nik
Unfortunately I am starting AoI correctly and getting the exceptions above. I tried it both with the exact command Nik suggested and (get this) with the Windows Launcher which specifies the memory settings for me. :/
- JOhn
Hrm, this is so strange. On my work computer I thougth that the dual-core was causing problems since it works fine on my home (single core) computer. So I went into BIOS and turned off the extra core (turned off "core multiplexing"). But the bug still happened. So it may not have to do with dual cores.
- John
As a second issue, I tried rendering on Vista today and the render dialog won't appear. I upgraded Java to the latest and it still doesn't work. I instlaled the log plugin and it didn't show an exception. I'm a bit befuddled. "Render Immediately" causes the hourglass (er, blue circle on Vista) to show forever, but I can still close AoI (and it closes right away, too, so it's not really hung). Anyone else have this problem?
- John
> As a second issue, I tried rendering on Vista today and the render dialog won't appear
Hmmm, I don't know much about that. I *do* know I have customers who develop Java software and they *cannot* use Vista - Vista has changed enough things that their (Java) development tools simply don't work on it.
However, I've not heard of non-development Java programs failing to run on Vista.
Do a search in these forums; there have been a couple of other people posting with problems and resolutions regarding Vista - something to do with where (and where not) to install AOI.
Cheers!
Nik
> I'm using the latest Java runtime environment from java.com on my work machine (and I think at home, too)
So what exactly is "the latest Java runtime"? Are you running Java 1.6 or 1.7?
Cheers!
Nik
> ...something to do with where (and where not) to install AOI.
I'll check into it. I didn't install, just ran the JAR. But maybe AoI isn't given permission to access something in the filesystem that it needs to.
> So what exactly is "the latest Java runtime"? Are you running Java 1.6 or 1.7?
The latest from java.com as of now: Java SE 1.6 update 11 (build 1.6.0_11-b03). Nothing beta or early access. :/
- John
Hi John,
Well, I've managed to get some event at least similar to those you've described.
So far, I only see it under Windows.
Whenever I try to create a Cylinder, I get a pregnant pause, and then an OutOfMemory error is being reported. Given the information you've also provided, this seems to be some form of infinite loop somewhere - probably being triggered by some other error.
I'll keep looking at this - although I am actually trying to work on other projects as well :o/
Cheers!
Nik
Ok John,
I can see *part* of the problem on my machine - and it would help if I knew if this is the same on yours.
Could you please open the Preferences dialog "Tools | Preferences"?
I suspect that in the AOI installation which is giving errors, you will see a number of invalid (or actually uninitialised) values:
"interactive surface error=0.0"
is probably the cause of the OutOfMemory errors, as this value will probably cause AOI to continually subdivide curved surfaces (eg Sphere and Cynlinder) until it has run out of memory...
I can't tell what has caused this situation.
The installation where I am seeing it is a brand-new installation of AOI2.7ea2 installed on Windows using the installer.
The version where I have not encountered the problem was installed from the non-platform ZIP file.
Sadly, any attempt to enter a useful (non-zero) value for "interactive surface error" results in an exception and the Preferences Dialog dies.
I think the only solution is to reinstall, perhaps from the ZIP, or copy in a working preferences file.
Let me know if either (or both) of these fix your problem.
Cheers!
Nik