Update
I'm carefully programming/designing it step by step. I've put a lot of work in the broad base of Phantom Scatter Compute. I've updated the lists in the main post.
- I've written an OBJ importer. I've been testing it with models exported from SketchUp with TIG's plugin and it works. It should work with any OBJ as long as it's triangulated. I wrote it so it can import in the "Vertex/texture-coordinate/normal" formatting for faces (see
https://en.wikipedia.org/wiki/Wavefront_.obj_file). I can add support for other face formats if people want this. I'm not entirely sure how the other OBJ exporters format their OBJ files...
- I've written a script that analyses the mesh and batches up geometry of the same material type. This means you can use the same material in different components/groups/objects (depending on what your modeling software calls them) and still get 1 CSV with all export data for this material. That'll save you a bunch of work during production.
- I've written a script that can do equal random distribution over 3D triangles. Currently I'm testing it with fixed data, the data that is not yet linked to the material library. I'll make the link as soon as everything works. I'm busy learning how to deal with matrices so the program will be able to do rotations/scaling.
- Exporting in CSV files now works.
Work-in-progress results during development | Not the final version (!)
I think I've come to the point where I can visually explain my proposed workflow. I'll be using SketchUp but it should work with anything as long as you can export it into OBJ.
1. My SketchUp testing area. It's a simple little area with a slope in it. I've put a material on it called "grid2":
2. I export the model as OBJ. The OBJ file appears among my files:
3. I run Phantom Scatter Compute:
4. I press the "Select OBJ" button and browse to my OBJ. Phantom Scatter Compute will start working and will pop up a little report when the export is complete. The program closes itself immediately when you press OK (or hit Enter) so your workflow isn't interrupted. In the final version this will use the scattering data provided by the library of Phantom Scatter Library but right now I'm using some random positions of my own for testing purposes:
5. The CSV file will appear next to your OBJ model, ready for import in Octane. I'm giving them the prefix "scatter_" so your folder doesn't become a mess. Right now I'm putting the material name in but in the final version I will name it accordingly to the scatter object names in Phantom Scatter Library so you can easily identify them:
6. In Octane I load up my test area, plus a tree OBJ which will have a scatter node linked to it which has the CVS loaded up in it:
7. The result:
And this is just one tree being scattered. I can only imagine how fast workflow will be when everything from grass/flowers/bushes to trees can be scattered at an instant.
I realize there is a problem in the current version of Octane though. I don't think these is a button to
update all the scatter nodes at once right now. This function really needs to be added!!
On a side note,
I think I can put further optimization in the datafiles that keep the scatter data in the library (these are the files that Phantom Scatter Compute will take as input data, not the CSV files). Right now every scatter data file 577 kB. I'll see what I can do about this in a later stage. I know you guys have complete beast PCs but space is not to be wasted.