x-plane / xplaneforexporter Goto Github PK
View Code? Open in Web Editor NEWOur .for exporter addon for Blender
Home Page: https://github.com/X-Plane/XPlaneForExporter
License: GNU General Public License v3.0
Our .for exporter addon for Blender
Home Page: https://github.com/X-Plane/XPlaneForExporter
License: GNU General Public License v3.0
Implement SKIP_SURFACE!
Relies on #11 , we'll be taking the vertex groups and exporting them
This will end up being a lot like XPlane2Blender, but with lots of little VERTEX tables. The bone_index and bone_weight stuff can wait for that bug. First we'll just see it in X-Plane
We use the object name for objects in two places
We need to use the mesh data name or when a mesh gets re-used between objects the mesh table will be redundant twice
We have the directives in, but, we don't have the unit tests or do any validations
Unit test showing we export the correct values only when enabled
Unit test showing we give an error if Amplitude is outside of [-1, 1]
Is a wavelength of 0 a problem? Does that mean anything? I think its fine.
It would be awesome to implement some of the ideas in X-Plane/XPlane2Blender#329
3D Trees are a very new and exciting part of our ecosystem. The full docs (as it were) are on Google Docs.
Right now we're using a frequency prop
which you'd still have to do the math to make sure that each TREE with that layer number adds up to 1.0
. Petr and I had this exchange:
I'd like to know a little more about what you meant by "weighted importance".
If you have Trees A, B, C, D and they should ultimately have the frequencies (not that you would normally hand calculate this)
[.5, .25, .125, .125]
What values would you put in the UI for each tree?
tree_freq = (tree_weight / sum_of_all_weights) * 100
So for your example I can use weights like:
2, 1, 0.5, 0.5
or
4, 2, 1, 1
Seems fine enough! Though I'd like to stick to ints.
Weighted Importance
propRight now all we have for version numbering is what is in init.py. XPlane2Blender has this extremely complicated data model vs build number system that has caused more headaches that it has really ever been worth.
I think for this version we can get away with simply well defined use of Blender's addon version, and some custom flag saying when it was built and if it is alpha,beta
So, no DATA_MODEL property this time - since .for is a very very simple spec.
No legacy file!
TODO: Review spec to make sure our ordering of the VerStruct stuff makes more sense this time.
Also to do, can we do without the whole version history thing? This, was, again, very complicated and so far for XPlane2Blender I've never had to do more than see the last version they used (which was either a way old version or the previous version)
We need to show that the LODs are within spec for bad cases (and maybe a few more good cases. Not sure what those are yet). Also need validation that no 3D LOD goes beyond Max LOD?
My rainbow stick test file failed because I didn't realize the aspect ratio for the UV map and mesh wasn't correct. It resulted in a massive tree. Gotta check that out, or better yet, automate it.
Petr gave me this file tiny_billboard_issue.zip
I believe the issue is that since the grass billboard is less than .or equal to .5 meters high the height is getting rounded down to 0
At the top of the header we're going to want
SHADER_2D
TEXTURE billboards.png
TEXTURE_NORMAL billboards_NML.png
SHADER_3D
TEXTURE trees_3d.png
TEXTURE_NORMAL trees_3d_NML.png
Along with other standards listed here: https://developer.x-plane.com/article/standard-shading-options-for-x-plane-10-scenery/#Availability_of_Extensions (but certainly not all of them)
The tentative spec says that each 3D tree will be having its own LOD. We'll need
I've been developing this addon like a mad man without much pause for making unit tests. Tsk, tsk.
Space and Random need to be floats and not ints
We currently have
- Has No Blend
- Has Specular
- Has Bump Level
But what we need is
- [No Blend | Blend Hash] (enum property shown with `expand=True`)
- Has Specular
- Has Bump Level
No Blend and Blend Hash (or rather, BLEND_HASH)
If using _PARAMs, we're using the GROUP system. If not, each sub collection just gives a layer number.
In either case the representation is the same - the 2nd level collections are the the form of "
Y_QUAD has the following parameters and where they should come from
<s>
UV coords<t>
UV coords<w>
UV coords<h>
UV coordsTurns out it is annoying and unclear to need to give a material's texture slot in one part of the program (getting the size) and just a file path in another
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.