Activity for Peter Eastman

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Instead, I understood it to be an extension of the existing mesh for a SceneCamera. That would make sense. The current behavior is pretty erratic. For example, the frustum ends in a box whose shape keeps changing as I move the view. I assume it's supposed to indicate something, but it's not obvious what.

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Sounds like potentially a nice improvement!

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Drawing the view frustum as an overlay isn't necessarily a good solution. That will mean it always gets drawn in front of everything else, even objects that it's behind, which could be very confusing. Even as it is now, I find the view frustums to be confusing more often than they're useful. If a view is zoomed way out you can see the whole thing. But most of the time it just causes one or two lines to get drawn over the top of a view, with no obvious connection to what you're doing in another view....

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    It looks like the problems go deeper than that. In https://github.com/ArtOfIllusion/ArtOfIllusion/commit/277d87aa28afd9d5e3f7e5530c3e607930041bc6#diff-27f4bd6876948b49cc8448cb6b30c95f you added a mouseMoved() method to SceneViewer implemented as follows: protected void mouseMoved(MouseMovedEvent e) { mouseMoving = true; mousePoint = e.getPoint(); mouseMoveTimer.restart(); parentFrame.updateImage(); // I wonder why, but that's how it works } That means that every time you move the mouse, it immediately...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I think this is caused by your change to draw the view frustum. That means that when you change any one view, the other three also need to get repainted, which slows things down a lot. You can see this by putting all four views into Smooth mode. Move one of the views, and see that it's reasonably fast. Now put one view into Textured mode, which is much slower to render. Then move a different view. You've not only slowed down the view you put into Textured mode, but all three of the others as wel...

  • Peter Eastman Peter Eastman posted a comment on ticket #384

    I just posted a pull request that should make things a lot faster when working with very large numbers of objects: https://github.com/ArtOfIllusion/ArtOfIllusion/pull/59.

  • Peter Eastman Peter Eastman posted a comment on ticket #384

    Works beautifully: 0.176 s 2000 pcs 0.000088 s/pc 0.302 s 2000 pcs 0.000151 s/pc 0.487 s 2000 pcs 0.0002435 s/pc 0.652 s 2000 pcs 0.000326 s/pc 0.838 s 2000 pcs 0.000419 s/pc Now to look into how to optimize deleting.

  • Peter Eastman Peter Eastman posted a comment on ticket #384

    That suggests an easy solution: defer updating the UI until later, and use an ActionProcessor to discard redundant updates. Let me try that and see how it works.

  • Peter Eastman Peter Eastman posted a comment on ticket #384

    Here are my results from running it five times: 2.733 s 2000 pcs 0.0013665 s/pc 4.223 s 2000 pcs 0.0021115 s/pc 5.597 s 2000 pcs 0.0027985 s/pc 6.88 s 2000 pcs 0.00344 s/pc 7.757 s 2000 pcs 0.0038785 s/pc It gets slower as the number of objects in the scene increases, but nothing dramatic. Deleting all of the them then takes about 30 seconds.

  • Peter Eastman Peter Eastman posted a comment on ticket #384

    I created a simple triangle mesh, set its smoothing method to approximating, then brought up the Array tool and told it to make 1000 copies. That took about 1-2 seconds, whether or not I used live duplicates.

  • Peter Eastman Peter Eastman posted a comment on ticket #384

    You mean like ThreadManager? :) In principle booleans could be multithreaded, though as you say it would require reformulating them as a tree. I'm curious why creating/deleting large groups of objects is slow. Are they live duplicates? If so, I can see why that might be expensive. Creating live duplicates should be very fast though. And I don't see any good reason for deleting to be slow. Do you have an example that demonstrates it? Subdividing meshes would be hard to parallelize. Creating the RenderingTriangles...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    It happens just launching it from the command line.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I haven't been able to figure out what's causing the window to shrink, but I have a workaround that seems to work reliably at least on my computer: just reduce the initial window height by 11 pixels. It's a hack, but if it works... For the OpenGL part, I also found an easy workaround: replace the GLCanvas with a GLJPanel. In principle that hurts performance a little bit, since one extra copy is required. (It renders the image into an offscreen buffer then has to copy it to the screen, rather than...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    It's nothing like that. The real problem is that when the main window appears, it initially comes up full size but then immediately shrinks down to just a sliver of title bar at the bottom of the screen. I can then resize the window and it works properly as long as OpenGL is disabled. But when it's enabled, the viewports are messed up and drawn in the wrong places. I haven't been able to figure out what's causing the window to shrink. It's somehow related to the initial window size: if I force it...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I figured out what's going on. I had installed the most recent JDK (1.8.0_144), and told IDEA to use it for this project. And it was in fact compiling against it, but for running it was using a much older JRE it managed to find somewhere on my system. I managed to get it to run with the correct Java. Using that one, the whole window is totally messed up and unusable. But when I switched off OpenGL, it became a lot better. It still has some issues, but overall it's a lot better than with the older...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I'm not entirely sure. I've definitely come across references to Oracle Java having worse graphics performance, but I don't know how common the graphical glitches are.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    One thing to consider: on OS X, it runs really badly on Oracle's Java. There are tons of graphical glitches, and the UI is very slow. It works far better on Apple's Java, but that's stuck at Java 6.

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    I've noticed that AOI does generate a lot of garbage while rendering. It generates a lot of objects while processing the scene in preparation for rendering. But once it's done with that and moves on to the raytracing stage, it does no memory allocation at all. Anything it will need is allocated before it starts. And then when it's all done rendering a frame, it calls System.gc() to cause a full garbage collection. Of course, that's what they've been saying for years you shouldn't do. The standard...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Another tool for observing what's happening is to call Runtime.getRuntime().totalMemory() and Runtime.getRuntime().freeMemory(). The first tells you how much memory the JVM has allocated from the OS, and the second tells you how much of that memory is currently unused. The difference between the two is the amount of memory actually being used. That will tell you whether the amount of memory being used is increasing, or whether it just isn't bothering to release memory back to the OS after running...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Make sure there isn't an actual memory leak somewhere. If a reference to the data is being kept around, it can't be collected. Memory profilers are pretty good for tracking down that sort of thing. But if it's only a one time increase, and additional renders don't increase it any more, then it's probably not a leak. How are you measuring memory use?

  • Peter Eastman Peter Eastman posted a comment on ticket #382

    This sounds like a really good idea.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    You're correct, it should be passing the index it was actually added at.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Possibly there's no exception getting thrown. It depends whether the divide by zero is happening in an integer or floating point calculation. In floating point, dividing by zero gives a well defined result (infinity, -infinity, or nan depending on the numerator) rather than throwing an exception.

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    That's a fairly obscure piece of code that not many other people are likely to be depending on. So I'd think it's fine to just change it.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Sounds like a good idea. unit() and getNormalized() both sound like reasonable names. I wouldn't call it direction() because "direction vector" means something different. (When working in homogenous coordinates, a direction vector is one whose fourth component is zero.)

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    My current version creates a template image of the map that is larger or equal to the maximum size of preview images. This happens the first time a preview is needed. Then the scaled preview is always created form that. There's no need to create the scaled version of the image. Just use the version of drawImage() that scales it down.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    There's a much faster way of doing it: create the preview image from the smallest mip map whose size is greater than or equal to the requested preview size. You're always generating it from maps[0], which can be very large, but you don't need to do that. If you have a 1000x1000 image and you want to create a 100x100 preview, you can generate it from the 128x128 mip map. There are other optimizations that could be used as well. You could require that preview image sizes always be a power of two (or...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Can you post your code? I'd like to see how you're doing it. If done properly, scaling images to any size should be super quick.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Creatig preview images can take quite a few fractions of quite a few econds if the images are large and there are very many of them. Did you implement the optimization I suggested where it skips images that are currently scrolled out of view? If there are a lot of images in the scene, you won't be able to see most of them. As you resize the window, it only needs to regenerate the previews for ones that are currently visible.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I assume, there should be same kind of a system as in ViewerCanwas for redrawing...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Extends ImageMap otherwise but the current scene is needen as a parameter to writeToStream...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    this would probably be a compatibility-breaking change to the file format, so should...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I think, gestures in the object file and the animation tracks and poses in the file...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    I think you're right that this is related to the mipmaps. The actual image data is...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Not currently possible. What are the intended use cases? Is this so you can modify...

  • Peter Eastman Peter Eastman posted a comment on ticket #495

    I think perspective.jpg shows why this would cause problems. In the manipulator at...

  • Peter Eastman Peter Eastman posted a comment on ticket #495

    I think #3 is better as it is. The size of the manipulator is based on what's convenient...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    MTJ is based on LAPACK, which will be faster for large matrices, but probably much...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    For non-interactive rendering, the default behavior has it depend on the distance...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    That makes sense. The reason for having the move and rotate tools in the palette...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    A few more comments on the FAQ: A lot of the FAQ is out of date. Once we get site...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Ok, that sounds easy enough.

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    This looks great! Very clean and modern looking. And as the person who wrote much...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Sorry, that last message got lost in my inbox and I just saw it now! I'm totally...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    It seems that on windows, there is no mapping corresponding to the meta key. That...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    It's been a very long time since I wrote that code, so I can't recall all the detailed...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I'm happy to set up a Hudson server and project to get something started. Rather...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    would someone start a new application from scratch today in Swing? If it requires...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    They're mostly independent of each other. The L&F customizes the appearance of standard...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    I've never looked at JavaFX in any detail, but at least in principle, I can understand...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Swing isn't going away. They're just recommending people use JavaFX for new projects,...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Some of those things are under the control of the Java Look & Feel, such as menu...

  • Peter Eastman Peter Eastman posted a comment on discussion Scripting

    You will want to call undo = new UndoRecord(window, false); before the begining of...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    It looks like no one else is going to test the Mac version, so I went ahead and copied...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    LayoutWindow.setUndoRecord() also sets the modified flag (unless the undo record...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Works perfectly for me. Anyone else with a Mac who can confirm it works for them...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Can you confirm that the current upload works? It still has the problem that combo...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    The problem with embeding the mor official stubs is that each one only works with...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    The reason it isn't finding the plugins is that they're buried inside the app bundle....

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    I'm working on debugging this. There seem to be a few different problems. The first...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    The dmg opens properly now, so that's an improvement. It still reports exit code...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Here's what showed up in the system console: 12/13/16 7:00:36.995 PM com.apple.xpc.launchd[1]:...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    That's fantastic! The Mac version doesn't work though. There seem to be several problems...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    :) Peter

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Anything that relies on the order in which you press the modifier keys. though, sounds...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Have you signed the DMGs in the past? No. In order to get a developer ID, you need...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I don't think it was intentional for them to behave differently. Just a side effect...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    How important do Mac users consider this? Pretty essential. It's the standard way...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    It's been a long time, but as far as I can remember, the problem was that if you...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    It's probably a bug that doesn't exist anymore. Apple stopped developing their own...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    So the transparent mode either adds or subtracts color depending on the background...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I'm not sure I'm too crazy about maintaining two release branches - we'd have to...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    If they're waiting at that line, it means there's no more work for them to do. Notice...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Really doing transparency correctly is... complicated. There are various approaches,...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    I think it would take something like drawTemporaryGraphics() Perhaps EditingTool.drawOverlay()...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I don't think you actually want to use lambdas in rendering. That would involve a...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    What sort of API do you have in mind? That will affect what name makes sense. For...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    A few thoughts on this. First, you should almost always use final gather for photon...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    I agree we shouldn't do this for 3.0.3. In bug fix releases, it's best to change...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    What I have seen is that the other authors' names are just listed after the first...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Agreed. Let's just eliminate the non-ascii characters. Especially if they're just...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Bezier curves have their own issues. Strictly speaking, they're also approximating...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    Partly, yes. Often that's impossible, of course, but it tries to make the valence...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    I must ask Peter how AOI compares with catmull clarke Catmull Clark surfaces are...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    To some extent we already have that. All the primitives like spheres and cylinders...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    That's the reason approximating surfaces are much more widely used than interpolating...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    it may actually be simpler to generate a rendering mesh, and then run over that mesh,...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Oracle's Java does support Lion (10.7), so they'd have to be on 10.6 or earlier....

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    It's also just a really complicated algorithm with tons of special cases for particular...

  • Peter Eastman Peter Eastman posted a comment on discussion Help

    8000 by 4000 is 32 million pixels. It stores 4 bytes per pixel, so that's 128 MB....

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Which menus?

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Thank you! Can you add me to the organization? My user ID is peastman. Using git...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    I think that all plugins hosted in the main repository should be open source. People...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Sounds like we have a clear answer! I suggest we just completely migrate the repository...

  • Peter Eastman Peter Eastman posted a comment on discussion Open Discussion

    Thanks a lot for getting the discussion started! I've been using github for a few...

  • Peter Eastman Peter Eastman committed [r428]

    Luke's optimizations for multithreading: replac...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Oops! I missed that attachment. Sorry about that. I tried running it on a few different...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Sounds like a race condition. Some field is getting accessed before it has been initialized....

  • Peter Eastman Peter Eastman posted a comment on discussion Scripting

    Try this: selected = window.getSelectedIndices(); undo = new UndoRecord(window, false);...

  • Peter Eastman Peter Eastman posted a comment on discussion Developers

    Perhaps I should bend some of my effort to updating the version of JOGL that AOI...

1 >