[WIP] Soaring Stars Lab: Flight Soaring Simulator

Yes, I have started implementing these ideas in Unity4 and U5. I did not pass them already to the latest version.

I was not considering vector field as Karearea mention because I think that Megaflow use as a source a 3ds Max output and I’m not able to use Autodesk unaffordable product (in my case).

[USER=387711]

Yes is a good idea. I do not know how to bake wind fields of all the scene 3Kx3K km (at 3m, 6m, 50m, 300m, 600m etc from terrain). Is a lot of data! I use something that can be similar good but more CPU expensive. I´m using two surfaces (layers) that create a local vector field and in real-time a local calculation. As data, I’m using “Dancing with the Wind” book. This data is generated at the start with the main wind direction. I has my own simple algorithm.

I was looking at Book of The Dead wind fields. Are a good example solution to follow for a local small scene and I need to understand it for evaluation in a much big environment. But my first thought, time ago, was that backing shadow maps or backing wind fields picks up too much HD data and time and is also are immutable. In my case, since we are talking of 1000s of km, for obtaining a good atmospheric local resolution, I’m forced to make them at the scene start with the direction of the wind (random sat media data and user inputs). Also because the environment, game objects position on the map are always changing upgrading itself. So I need to create a big input (not too big) for all the scene and make a local real-time calculation.
But now that you are pointing out that, you make me think that, yes. I understand a wind field as a texture that stores 3d direction. I can use a set of library database of some local objects turbulence wind field and apply that more accurate data mixing it with the turbulentcity wind audio data. This is triggers as usual when the raycasts (in direction of the wind) hits with a game object collider (static tree, house, etc… ).
I can use fantastic Megaflow in the glider for example inside a wind tunnel so that the younger player has a better understanding of what is happening. But I’m afraid of the result: I do not know how accurate is the Max output. I thought about that but the only situation when is useful (visual fan aside) is when two aeroplanes or gliders are so close to each other, that the wind influences the aircraft direction. If two aeroplanes are side by side but with wings are overlapping, the aeroplane wind influence on top push down the wing of the aeroplane that is down. This makes the aeroplane down to roll a bit. And the aeroplanes enter in a path collision. It triggers an almost inescapable fatality. I do not like automatic acrobats but I need to simulate this effect in some way to prevent the accident of, for example, acrobatic teams or gliders in a thermal. I will add later pushing forces. The best is to show, after the accident, the wind stream flow around the two aeroplanes. Inside my possibilities, I wish to avoid “feels right” and to make it correct. Since each situation is different and you need a lot of different angles(±30° Y and X) the only way I can imagine it is to calculate it in real-time.

But at the moment, I do not know how to make well calculated aerodynamic filed around a mesh in real-time or who can make it for me.

Yes in UDK and Unity 4 or 5 I has done that. I need to try that with this new U20xx particle system. Anyway, for the thermal and cloud (not render side), I prefer, instead of using particles and PhysX, to use just individual sphere collider and move them vias scripting calculating locally the atmospheric conditions. If the glider enters in that sphere zone the vector change as if is a hot air bubble inside a thermal. The collider can change in size but is tricky. The same bubble later go down. I try to make clouds via particle using Gtx 460, but was too much GPU expensive at the time. There was a nice asset for that now deprecated I’m the author since 2007 of the SoaringClouds photorealistic textures. Having lots of particles is more realistic and can be big. Here it’s me using the unbeatable Condor and my photorealistic cloud textures in 2012.

Visualisation of the cloud
I try trueSkyAlpha but is hard when I move the sliders. probably via scripting is more simple. Visually I prefer in status zone conditions to use several cylinders instead of planes like trueSkyAlpha but that renders inside the scene environment and not outside. The procedural cloud covered is triggered by the individual sphere colliders. But I did not implement at the moment this solution.[/user]

I wasn’t referring to Megaflow specifically but some type of generated data as you later mention.

It’s enough to have a look at the first few diagrams in Dancing with the Wind to understand there is a lot to simulate here (even if you only simulate a small subset of effects at play).

I can try and re-find some papers, etc. that I’ve come across that do different types of real-time computational fluid dynamics. It goes above my head but I could try and consult with a professor in the field when you get to concrete questions.

It would be interesting to see what Condor 2 actually implements and how in these regards. A lot of the stuff I have seen (in plugins for x-plane, etc.) was quite naive and primitive.

You’re attempting to pull off something quite beautiful. Let me know if I can assist. I’ve been leaning towards keeping behavior to feel/behave correctly and not worry about simulating things correctly. It would depend what you’re trying to achieve.

ATM, I’m interested in R/C simulation (Gliders included). All of these effects can and should be modeled for a realistic environment but I’m not sure how important it is for the actual fluid dynamics to be calculated correctly.

Here’s one example of real-time fluid dynamics. (this will only achieve “realistic” results in a steady flow state which makes it irrelevant if I understand correctly. “realistic” because the results you will get will be rough approximations, at best and hopefully will deliver believable result.)

I’m no expert. Far from it. Most likely wrong in a few places above.

Hi guys, by ‘manual setup’ I meant that Megaflow can generate flow data from splines that simulate localised wind strength and direction. The splines need to be manually placed to represent wind behaviour, which means reading about anabatic airflow etc and guessing what the dynamics should be. It can also import and handle data from proper CFD software, but this is beyond my budget for the current project.

What is important for a car designer and the car industry at high speed is the cl in each individual wheel. Some cars have a very bad cd, but be more aerodynamically performer via a smaller front surface area and very good -cl including in strong crosswind at high speed. Using that software the 85 per cent of the result can contain an error range margin of 0.06 in cd and can confuse the inexperient designer. The usage of AI in Aerodynamic is smart.
I prefer a shader that makes the cl cd equation in the GPU and translates the force directly to the flexing mesh. [Something like probably is done in the Book of The Dead]. I try using shader scripting for this but I was not able to control in the shader the output. I hope for the new Unity shader graph gives me more possibilities in the future. In my case, I implement for the same author of Megaflow, the West brothers, MegaFire to bend the wings in 2015.

@Karearea Thanks the spline info. Yes is possible to put the splines by hand but is better to generate correctly. I do not know how to make a proper CFD. I’m using Xfoil as 2D CFD cd cl data and place that in the wings sections that returns the CD CL to get the final wing LD.

More in detail I’m using a Rigidbody in the wind C.G. that contains the mass of the wing plus the water ballast. It moves up and down, and this float moves the MegaFier mesh modifier giving the illusion of flexible wings. I put on liked to this flexible mesh the aerodynamic controller that is in charge to make local lift drag force using Xfoil data plus wing equation. In this way for example in the case of the ETA glider or Concordia, the lift is calculated in the correct place with the correct effect (and local wind). The Rigidbody collider is connected by a breakable joint. As Jean Marie Clément describes in his book on page 195, If you take out the aerodynamic air brake at high speed (Because is flexing down) you break the wing because all the lift is applied suddenly into the tip and flexes up.

So at the moment making a pure 3D CFD using the mesh is out of my capacity. I’m waiting for a GPU CFD :stuck_out_tongue:

1 Like

Liking the progress so far! Can I ask if you are creating your own controller/code for the glider/thermal/wind physics? I would be interested to know how you are approaching that part of it.

2014 LIFT DRAG

The input is done by using Guavaman Enterprises Rewired. I’m waiting for the new Unity 2018.3 Input system. I grab from there the Input and apply that value to the excellent Chris Cheetham asset. My Unity5 FSS glider/thermal/wind physics controller applies different equation explain above and is a modification of that Unity FS. Here the only screenshot at that time.


2014 Flight Soaring Simulator using Chris Cheetham GUI

Ok cool, I thought unity FS is not available anymore, I wonder if it works with Unity 2018… I wish you good progress/all the best with this project. I love aircraft, especially gliders, such amazing aircraft type to be able to fly without an engine!

Yes, FS is working in Unity 2018 inside FSS after minor corrections. I’m taking out the FS Java Xfoil data and in the future, I will put D.A.D. input.

Thanks for the good wishes
Now I’m working in Soaring Starts Lab, Soaring lab improvements: A new baby
3718171--307564--Alan And Andres Mattano At SoaringLab.jpg

Here is my “FullWing” sailplane glider concept art. Looking for a new and better wing fuselage interaction. I’m trying to get good LD from the fuselage section. I remember the Horten idea and ability to almost take out the fuselage from the aircraft. I use the same technic that characterises this 400kg 13.5meters class glider concept.
3718171--307576--Ala-13.jpg
3718171--307579--FullWing-2018-13.jpg

2 Likes

Here there are more sketches drawing of the “FullWing 2018 13”:

3 Likes

DAD will be integrated into Flight Soaring Simulator as a plugin. It keeps the same visual feeling of Fortran Drela Xfoil.

The idea here is to make a new software that makes airfoil via TensorFlow Ml-agent. So that the Ai Designer is in charge of making new airfoils. The player/user will be a designer and is in charge of the glider project. He can create a new glider.

2 Likes

2018 BOX UVMAPPING

I’m trying to achieve photorealism since the start. Inside my research, here there is an investigation about box UV mapping.

Game objects: an F1A Nordic suitcase box (1960) for free flight models.

For feedback, there is a dedicated thread: FORUM LINK

Here there are some renders made in Unity 2018.3, Unity 2019.1 realtime PBR, Blender 2.8 using Eevee and Substance Painter.

Is empty but in the game will be full of old FAI glider class F1A free flight models
I’m using PBR standard material

This game object is scalable

I make this box as an asset for the Unity Asset Store
WIP and waiting for approval at the Unity Asset Store: Photorealistic F1A Old Wood box case | 3D Industrial | Unity Asset Store

Include LOD with hi, low poly and photorealistic textures

Now DAD is capable of interacting with NACA airfoil series. This 1940s airfoil shapes developed by the National Advisory Committee for Aeronautics are still commonly used in aircraft manufacturing and energy sector.


Chart comparison of NACA 0009 versus DAD AM airfoil with higher LD efficient.

Since DAD has it’s own development, here it is a link to a specific WIP thread.

2018 DONATION
donor-advised funds

For a future founding, I place a Patreon support motivated link: Alan Mattano Soaring Stars lab | creating Flight Soaring Simulator educational game | Patreon
The benefit of supporting this project is that I can release earlier.
GoFoundMe: https://www.gofundme.com/f/soaring-stars-lab

1 Like

2019 UV MAPPING
SPHERICAL & CYLINDRICAL
Projection Research

For making FSS more realistic, I’m making a new 3D model workflow (radical and unconventional) for hard surface game development. The reason for this is photorealism.


GoNuts 4 Trim and Color: WIP wheel nuts product that will be available in the asset store.

In general, in the game development environment, 3D objects surface does not reflect the designer intention. Because the mesh is low poly and also used average vertex normals. This is not good for showing Industrial Design objects. Especially if the surface contains a fixed radius with no smooth transitions. Using average normals bends the light reflection in a non-correct way. A capsule can look like a potato. In StarCityzen as an example, you can notice this problem becuse is almost all industrial design environment using the traditional game object modelling workflow. So my intention inside this simulator is to create perfect vertex normals that reflect the style intention of the Industrial designer by using triangles instead of quads and custom normals instead of average normals.

If we use Blender2.8 with the new fantastic interface or I presume 3DMax to create the hard surface model, we finish applying extra loops in the edges to prevent average vertex normals. When a flat surface intersects a surface containing radius edge, there is an unrealistic artificial transition between the two surfaces. Custom normals are possible but we need to import them. And the final result is not a constant radius. So you finish making the NURBS parametric model outside. There is no way to make a perfect sphere using, for example, advance subdivision modelling surface. So there are not many 3d modelling tools.


GoNuts 4 Trim and Color asset AM12 made inside Blender using Rhino custom vertex normals to compare the poly count.

In the 90s I was using the 70.000 U$D Alias in an Indigo as a car designer and later Alias split into Maya. In my opinion, for creating a correct hard surface modelling, Alias is needed. Is better than CATIA, Solidworks or Other parametric because allow more style flexibility to the designer. It allows me to create complex stylish shapes that later I used as a designer in the car industry for Pininfarina. Then you need to convert that NURB polysurface to polygons conserving UV vertex normals. For the conversion, you need a tool like the new PiXYZ. Maya does not conserve all the NURBS tools as Alias do. You can´t create a surface in Maya. So you need Alias + PiXYZ + Maya for UV mapping, rigging animation each year. The cost is not easily affordable. And the result is not at the level of my expectations.

2019 VERTEX NORMALS
STUDY AND RESEARCH

For me was natural as a solution to migrate to 300U$D Rhino that runs inside a PC at the end of the 90s. What I’m trying to make inside Rhino since then is to make NURBS, unfolding or unwrapping the UV map using surface edges that are simple to select than polygons and then convert that NURBS polysurface into polygons conserving the correct vertex normals and same UV mapping. Now I do not need to think about vertex normals since this tool handles it automatically all this inside one cheaper tool. Along the decades, I talk to developers and suggested pushing for UV mapping tools that came out in Rhino 4, now UVMapping bug fixes and now subdivision modelling via the forum, bug reports, and emails to Bob Robert McNeel. Now Rhino 7 cost around 1000U$D. Is still not ready for game development as Blender, 3D Max and Maya is but can be an option for hard surface modelling game development. Not a good one for game development in general! A different alternative one. I’m just a user.

Here there is my research inside Rhino6 of a sphere and cylindrical UVmpaing projection conserving NURBS vertex normals:

1 Like

2019 AUTOMATIC UNWRAPPING
SUBSTANCE PAINTER 2019.3.1

After learning how to box and cylindrical projection wrapping, I’m testing the new Substance Painter 2019.3 that includes automatic UV unwrapping. Unfortunately, at this moment, it is in an early release stage and does not support for industrial design, cylindrical shapes. Still make a nice job when you are separating objects in a conscious way.


GOGO GURU R13, WIP: racing tires that will be available in the asset store.


GOGO F1 GURU rear slicks.

2019 RIZOMUV REAL SPACE
CUSTOM UV MAPPING

When you are having quads as for example these tires, a tool like Remi Arquier RizomUV is a much better option for aligning the UV mapping projection and increase overall efficiency. Sometimes after letting Substance Painter do the automatic UV mapping, I import the mesh back to Rhino. I make a UV mapping reprojection of the parts that are not good inside Rhino. And I use Rizom to pack correctly.


GOGO All-Road Tire R16 (205/55) now available in the asset store.

Dealing with Rhino3D and meshes is not simple. In my case, I prefer RizomUV Real Space since I will be using CAD meshes out from NURBs with custom vertex normals instead of average vertex normals. For that, I created a different new workflow for game development.

2019 TESSELLETION HDRP
SQUARE QUADS

For creating tessellation, perfect squares quads are needed. If not you will get a zigzag issue . For making my research about tessellation, I chose tires as a playground. After making the quads out from the NURBs, if the quads are nor square, I import the mesh into Blender 2.81. In there I add edge loops to get square quads.



Tessellation research using quad meshes.

If you want to read more about GOGO tires: WIP GOGO Tires

1 Like

Soaring Simulator 2019
SUMMARY

In this past year, I make a research about how to develop hi-quality 3d models and paint them. In Pininfarina, for making Ferraris, I was using Rhino 3d. So Is my favorite choice editor to make NURBS type surface and convert them into triangles. But Rhino was not made for game development so I needed to convert that. I was especially focused on UV unwrapping and unwrapping technics since is a big problem for complex polygon surfaces.

Many things happened this year and this is just a summary:

Thx for reading!

Alan Mattanó

Flight Soaring Simulator 2020
FSS20 ROADMAP GOALS

What’s coming

  • Rename Soaring Simulator to Flight Soaring Simulator 2020.x (FSS20).

  • Post articles or video progress on Instagram and YouTube weekly for the following projects. (in Eng, Ita, Spa).

  • Publish the following articles as Soaring Stars lab in the Unity Asset Store.

  • Publish a Udemie design course

  • Publish GOGO Tires R16 Guru, R17 Sport, R18 R19 R21

  • Make better 3D logo and intro video

  • Learn to use RizomUV

  • Make and Publish Rim Wheels R17 R19 R21 with correct UV mapping projection.

  • Finish and sell online the trees (Eucalyptus, etc.) created in the past years.

  • Buy US books on the calculation of a finite wing and CFD. Here my list: LINK

  • Improve and correct the most obvious bugs for DAD.

  • Try to publish DAD on the Microsoft Steam platform.

  • Try to publish Color Picker & Eyedropper Tool.

  • Patreon donation option for followers.

Flight Soaring Simulator 20 .01
First weekly video for followers.

When I saw uTires dynamic tire deformation in the asset store, I was thinking this is awesome for the landing gear and showing via a cam a perfect landing.

So here is my first implementation of mesh deformation behavior of an aeronautic tire under load. Realtime dynamic physics simulation using C#, tessellation, Nvidia PhysX, and of course, Pecek 2SD “uTire”!

1 Like

Flight Soaring Simulator 20 .01
Aircraft landing gear under stress.

Implementation of landing gear and tire shader vertex mesh deformation behavior. Realtime dynamic physics simulation using C#, tessellation, Nvidia PhysX, and Pecek 2SD “uTire”. Airplane fuselage J3-CUB.

The basic idea of Pecek 2SD “uTire” is to use the GPU and the shader program to interpolates the mesh vertex between two states. This lets PhysX out. It is using the PhysX to read the PhysX wheel component position or dynamic visual (I presume by casting rays). So is fast.

SETUP

  • After installing uTire
  • Open uTire manager.
  • Drag and drop the game object containing the rigid-body component.
  • Later set the number of wheels into the array, that in my case are 2.
  • And drag and drop the wheels game objects.
  • Open the TSD > uTire Material Editor
  • Have fun editing
1 Like

FSS20 .01
J3CUB Fabric Cover& Seat

I try to cover the fuselage frame using fabric simulation but I fail.

So I make the seat instead.
It is difficult to make the seat of the J3 CUB. So instead of modeling in a traditional way by using Maya, Zbrush or Blender as a sculpting tool, this time I prefer to use Rhino for the tube frame. Later I import that structure to Marvelous Designer. I create there the fabric and weld them. Finally, I give a bit of pressure on it.

After packing UV-mapping to avoid overlapping, I paint it in Substance P. and here there is a render.