Menu

New feature planning

2014-12-08
2015-05-03
1 2 > >> (Page 1 of 2)
  • Peter Eastman

    Peter Eastman - 2014-12-08

    Since a lot of the comments on the "future of AoI" thread related to specific new features, I'd like to open up a separate thread for that topic. What do you see as the highest priority features to add?

    Just about everyone seems to be mentioning UV unwrapping as one of the most important missing features. How should that work? I can see two main approaches:

    1. Make this almost an invisible feature that "just happens". When you export to a format like OBJ it can already handle 2D procedural textures, automatically converting them to bitmaps. We could make it handle 3D procedural textures in exactly the same way. It would do all the unwrapping as part of the export process, creating an appropriate 2D bitmap and texture coordinates.

    2. Alternatively, it could be a more explicit feature where you can convert a 3D texture on an object to an unwrapped 2D one. There would be a GUI for previewing the unwrapping, changing how it gets done, etc.

    Another class of features that came up is improving the import/export support to handle more file formats, or to handle more features of the formats it already supports. Erlend mentioned OpenGEX, and Harald mentioned PDF. What are the most important formats to support? What's the relative importance of importing vs. exporting for each one?

    Peter

     
  • Luke S

    Luke S - 2014-12-09

    Based on how I've read some of the recent comments, I believe that the requests for better UV mapping are actually two different issues.

    a. Is simply extending export support to 3D procedurals. Start with how textures tie to the mesh with "Bind Texture Coordinates to Surface" and export from there. Very similar to your option 1.

    b. Is a little more involved. It has to do with how AOI handles UV mapping to begin with. The default "Start with another type of mapping that is close, and tweak from there" works well for some types of objects, and textures, (AOI's kind of procedurals come to mind) but has limits for others. If you intend to Hand-paint, or otherwise generate an image to be UV mapped, it is handy (in fact, vital in many instances) to be able to unfold a mesh in ways that make sense to the rest of your process.

    Technically, you could probably do this by selecting "Map each face independently" and then move the various faces around. This would be awkward at best. I believe that AOI's internal UV representation is up to the task, its the tooling that needs a little work. To get an idea of what I mean, try out unfolding a mesh in the Polymesh plugin. That workflow is a start, but even it could use improvement if anyone ever finds the time. The good news is, triangles are supposed to be simpler to unfold than n-gons.

    Not sure what formats would be best, but have a couple of thoughts from when I was trying to build a directx importer/exporter.

     
  • Luke S

    Luke S - 2014-12-18

    Just had another thought on this subject. If AOI wants to support/cater to game designers, etc, exporting textures as shaders would be handy. One of AOI's strengths in texturing is its proceedural system, but a lot of results can't be exported as a simple set of mapped images:

    • Anything with keyframeable parameters.
    • View Angle &tc. (I have an idea of another module that I have wanted for years)
    • Anything that varies with time could possibly be exported as a series of mapped images/movie, but that will quickly become impractical.

    It's been mentioned before, and I suspect it would be a pain, but worth bringing up.

    Weight painting, or equivalent.

     
  • Peter Eastman

    Peter Eastman - 2014-12-18

    What format and shading language would you want to export them in?

    Peter

     
  • Luke S

    Luke S - 2014-12-19

    Based on an (Admittedly shallow) skim through current options, probably GLSL. (cross platform) I would think that one would output the GLSL source code, maybe just to a simple text file. It could also be possible to have an API point that returns a String() if anyone is building an exporter for a format that can use such directly.

    EDIT: I have yet to find a 3d format that is designed to transport a shader. This would primarily be for people who would normally have to write a shader from scratch/hack one together out of bits and pieces.

     

    Last edit: Luke S 2014-12-19
  • Nathan Ryan

    Nathan Ryan - 2015-01-17

    Speed. For me, graphics card support would help the most. I often need to render at printable resolutions which can take days.

    I also use xfrog a lot to build plants and the export/import doesn't always work right - usually when I'm trying to simplify or join objects. Although, I'm not sure if the original error is in the export from Xfrog or import into AoI.

     
  • Luke S

    Luke S - 2015-01-17

    What format are you using for im/export?

     
  • Peter Eastman

    Peter Eastman - 2015-01-17

    As far as rendering speed, I think I'm really running up against the limits of what I could do with Java. If I were to completely rewrite the raytracer in C++ I could probably get 2-3x speedup by using vector intrinsics and better control over memory layout. The former is impossible in Java. I might be able to do the latter to a limited extent by packing data into NIO buffers, but I'm not sure it's really worth the trouble. I could also make more use of single precision, which would help performance a bit but require a lot more care to avoid rendering artifacts.

    But to really get high performance, the best solution would be to write a GPU accelerated raytracer using OpenCL or CUDA. On a high end GPU it should be possible to get 10-100x the current speed. But obviously that's a huge project.

    Peter

     
  • Peter Eastman

    Peter Eastman - 2015-01-17

    Also, if you post specific examples of files that don't import or export correctly, we can look at them and maybe fix the problem.

    Peter

     
  • Nathan Ryan

    Nathan Ryan - 2015-01-18

    It wasn't obvious to me that the GPU acceleration would be such a huge project. That's totally understandable that you would hesitate on that. I'm including a file I created in XFrog and exported to a wavefront object .obj. Which is the only choice immediately available in version 3.0.1. Have a look at it. There are overlapping shapes that don't quite seem right. It imports, but when I try to simplify to get the shapes more reasonable in vector count it does nothing or everything disappears. I'm using Windows 7.

     
    • Luke S

      Luke S - 2015-02-15

      Hi. Sorry that we haven't gotten to this sooner. When this file is imported, there are several issues.

      • Obj_grainset2 has a pair of co-planar faces
      • Obj_grainset2_copy has the same and two edges connecting the same vertices.

      I tried importing the .obj into meshlab, and some of its repair tools seem to find issues, so perhaps these issues are found in the .obj itself? I'm not an expert. I re-exported what was left when meshlab was finished, and that file refuses to import to AOI at all, so now I'm a little stumped.

      Does anyone know of a standard way to check common formats, such as .obj?

       
  • OniOid

    OniOid - 2015-02-16

    CAD features! ^u^

     
    • Pete

      Pete - 2015-02-16

      Hehe... :D

      I have been thinking that sometimes too. There are quite a few things where the CAD-approach would be more natural than the "play-doh-way". Like most technical things -buildings, windows, cupboard doors, reflectors and lenses... And when it comes to reflectors and lenses it would be important, that the render-engine would use the true mathematical surfaces instead of triangulated surfaces.. (I think the implicit surfaces would be just the tool for that, though I have no idea how to use that part of AoI.)

      But a CAD-module would of course be a huge job to do -- of course depending on how far you wish to go with it. And it should be written by someone who actually understands the world pretty well.

      It probably would be possible to make a "CAD look-a-like", that would produce tringle meshes without history or modifialble features, but that really would not make any sense...

       

      Last edit: Pete 2015-02-16
    • Luke S

      Luke S - 2015-02-16

      How about putting together a list of CAD-like features that you would like to have? Pete may be onto something about implicit surfaces for some sorts of items. I'd expect that if this happened at all, it would be a plugin or three, rather than something integrated into AOI core.

       
  • chris w

    chris w - 2015-04-27

    Changes to UV mapping and import/export formats.

    I created a barrel-like object in AOI, gave it a dummy texture
    and exported it as an object. Trying to paint the texture
    with Tattoo and also Carrara the paint job comes out symetrical ie
    painting on one side of the object is reflected on the other.
    I examined the UV mapping in Wings, see attatched. The first
    image is unfolded using Wings tools and the second the default AOI UV.

    It would be good if AOI could " do it like Wings does ": paint ready
    and produce an outlined bitmap of the unfolded texture.

    As for import/export I would like to see .x for animation and (wishful)
    .bvh support for characters.

    ps. A "Brush select" option where faces/points/edges can be selected
    by moving the cursor around while not affecting the movement of
    the selection would be handy.

     

    Last edit: chris w 2015-04-27
  • leonid

    leonid - 2015-04-27

    Before starting studying in detail possibilities of AOI, I tested the renderer of Sunflow written also on Java. Source code remained unfinished, the author threw the project, but, using Java-sun, it was possible to place in a scene of 4 000 000 triangles at 16Gb RAM
    AOI allows only 1 000 000 triangles
    I wanted to try to copy a AOI source code on Python3-PySide, having given ray and trace to modules on C++ or Python-OpenCL, but mind at me didn't appear :):):)

     

    Last edit: leonid 2015-04-27
    • Luke S

      Luke S - 2015-04-27

      @leonid: How did you test how many triangles AOI could handle? How much memory was made available to the JVM?

       
  • leonid

    leonid - 2015-04-27

    As I connected to AOI Blender, to test possibility of problems isn't present.
    As criterion for me opportunity to manipulate object in viewport serves.
    To create in the Blender the object from 10 000 000 triangles isn't present problems.
    Also I wrote the exporter to Sunflow. I can easily add triangles and render in turn in AOI and Sunflow.
    When Sunflow still easily copes with a task, AOI already enters a stupor(hangs)

     
    • Luke S

      Luke S - 2015-04-27

      Okay, in that case:

      • How much Memory was AOI allowed?
      • How much Memory was sunflow allowed?

      This could make a huge difference.

       
  • leonid

    leonid - 2015-04-27

    Sorry. Sunflow doesn't ask to specify necessary memory, for AOI I use the instruction
    java -jar -Xmx16000m ArtOfIllusion.jar

     
    • Luke S

      Luke S - 2015-04-27

      What is the output of java -version when run from a terminal on your computer?

      (It really might make a difference!)

       
  • leonid

    leonid - 2015-04-27

    I don't use jdk which is in repositories of my Linux Mageia 5 (RC). Sunflow doesn't wish to work with it. I decided that it will be more useful to download from the official site of jre1.8.0_25 and to use it for all Java-applications
    full path "/home/leonid/bin/jre1.8.0_25/bin/java"
    The blender uses it
    java_bin = os.path.join(java_dir, "java")
    jar_file = os.path.join(jar_dir, "ArtOfIllusion.jar")
    self._process = subprocess.Popen([java_bin,"-jar","- Xmx16000m", jar_file],
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

     

    Last edit: leonid 2015-04-27
  • Peter Eastman

    Peter Eastman - 2015-04-28

    Chris, how did you create the object and how did you map the texture to it? It sounds like you probably used a projection mapping, which isn't what you want for this.

    Peter

     
  • chris w

    chris w - 2015-04-28

    Hi peter,
    the object is a lathed curve and the texture is a
    UV mapped image 'white.jpg'. I have tryed some variations
    with mapping but the results have been the same.

    chris.

     
  • Peter Eastman

    Peter Eastman - 2015-04-28

    But how did you create the texture and mapping? Please describe the exact series of steps you followed.

    Peter

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.