Git Product home page Git Product logo

godot_voxel's Introduction

Voxel Tools for Godot

A C++ module for creating volumetric worlds in Godot Engine 4.

🚪 Windows Builds 🐧 Linux Builds 🐒 Mono Builds Documentation Status

Discord

Blocky screenshot Smooth screenshot Textured screenshot

Features

  • Realtime 3D terrain editable in-game (Unlike a heightmap based terrain, this allows for overhangs, tunnels, and user creation/destruction)
  • Polygon-based: voxels are transformed into chunked meshes to be rendered
  • Godot physics integration + alternate fast Minecraft-like collisions
  • Infinite terrains made by paging chunks in and out
  • Voxel data is streamed from a variety of sources, which includes the ability to write your own generators
  • Minecraft-style blocky voxel terrain, with multiple materials and baked ambient occlusion
  • Smooth terrain with level of detail using Transvoxel
  • Voxel storage using 8-bit or 16-bit channels for any general purpose
  • Instancing system to spawn foliage, rocks and other decoration on surfaces

Check the changelog for more recent details.

Documentation

Roadmap

Areas of interest:

  • Multiplayer synchronization
  • Smooth voxel texturing
  • Level of detail with blocky voxels
  • Make GDExtension work

Supporters

This module is a non-profit project developed by voluntary contributors. The following is the list of who donated at least once. Thanks for your support :)

Gold supporters

Aaron Franke (aaronfranke)
Bewildering

Silver supporters

TheConceptBoy
Chris Bolton (yochrisbolton)
Gamerfiend (Snowminx) 
greenlion (Justin Swanhart) 
segfault-god (jp.owo.Manda)
RonanZe
Phyronnaz
NoFr1ends (Lynx)
Kluskey (Jared McCluskey)
Trey2k (Trey Moller)
marcinn (Marcin Nowak)
bfoster68
gumby-cmyk
Joshua Woods (jpw1991)
jjoshpoland (Josh)
jbbieber1127 (John Bieber)

Supporters

rcorre (Ryan Roden-Corrent) 
duchainer (Raphaël Duchaîne)
MadMartian
stackdump (stackdump.eth)
Treer
MrGreaterThan
lenis0012
ilievmark (Iliev Mark)
OrbitalHare
matthewhilton (Matthew Hilton)
Pugulishus
Fabian (nan0m)
SummitCollie
nulshift
ddel-rio (Daniel del Río Román)
Cyberphinx

godot_voxel's People

Contributors

aaronfranke avatar alexzk1 avatar angular-angel avatar caellian avatar deejaylsp avatar dsrw avatar duchainer avatar great90 avatar jacobcoughenour avatar lhinuz avatar lry722 avatar marknefedov avatar menip avatar nic96 avatar nwdamgaard avatar piratux avatar poikilos avatar qarmin avatar rcorre avatar sneak1ng avatar spazzylemons avatar stengun avatar striezel avatar tdaffin avatar tokisangames avatar treer avatar trey2k avatar vivraan avatar wrathofrathma avatar zylann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot_voxel's Issues

Implement Support for Dual Marching Cubes

Dual Marching Cubes is an algorithm for meshing voxel data that uses an octree to optimize the mesh, resulting in a mesh that uses less geometry where less is needed. It also (as far as I can tell) supports both smooth and blocky geometry. This would potentially provide better rendering performance compared to transvoxel.

There are two implementations I know of which can be useful to study:

First is this one, which solves an issue with non-manifold geometry sometimes being generated: https://github.com/dominikwodniok/dualmc

The second is the VolumeComponent from Ogre3D, which is more game-oriented and additionally has a LOD mechanism: http://wiki.ogre3d.org/VolumeComponent

Document from volume-gfx.com - https://www.volume-gfx.com/volume-rendering/dual-marching-cubes/

Original paper: https://www.cs.rice.edu/~jwarren/papers/dmc.pdf

Fails to compile on ubuntu 16.04 with godot 2.1

Trying to compile this on ubuntu 16.04 with godot 2.2 errors out with

scons: done reading SConscript files. scons: Building targets ... g++ -o modules/register_module_types.x11.tools.64.o -c -g2 -Wall -DDEBUG_ENABLED -DDEBUG_MEMORY_ENABLED -DFREETYPE_ENABLED -DDEBUG_MEMORY_ALLOC -DSCI_NAMESPACE -DENABLE_DEPRECATED -DOPENGL_ENABLED -DALSA_ENABLED -DJOYDEV_ENABLED -DPULSEAUDIO_ENABLED -DX11_ENABLED -DUNIX_ENABLED -DGLES2_ENABLED -DGLES_OVER_GL -DMUSEPACK_ENABLED -DSQUISH_ENABLED -DVORBIS_ENABLED -DOPUS_ENABLED -DTHEORA_ENABLED -DTHEORALIB_ENABLED -DPNG_ENABLED -DDDS_ENABLED -DPVR_ENABLED -DJPG_ENABLED -DWEBP_ENABLED -DSPEEX_ENABLED -DTOOLS_ENABLED -DGDSCRIPT_ENABLED -DMINIZIP_ENABLED -DXML_ENABLED -DETC1_ENABLED -DGLEW_ENABLED -DGLEW_STATIC -DOPENSSL_ENABLED -DMODULE_CSCRIPT_ENABLED -DMODULE_ENET_ENABLED -DMODULE_GDNET_ENABLED -DMODULE_GDSCRIPT_ENABLED -DMODULE_GODOT_VOXEL_ENABLED -DMODULE_GRIDMAP_ENABLED -DMODULE_IK_ENABLED -DMODULE_VISUAL_SCRIPT_ENABLED -D_REENTRANT -Icore -Icore/math -Itools -Idrivers -I. -Iplatform/x11 -I/usr/include/freetype2 -I/usr/include/alsa -Imodules modules/register_module_types.cpp modules/register_module_types.cpp: In function 'void register_module_types()': modules/register_module_types.cpp:31:29: error: 'register_godot_voxel_types' was not declared in this scope register_godot_voxel_types(); ^ modules/register_module_types.cpp: In function 'void unregister_module_types()': modules/register_module_types.cpp:61:31: error: 'unregister_godot_voxel_types' was not declared in this scope unregister_godot_voxel_types(); ^ scons: *** [modules/register_module_types.x11.tools.64.o] Error 1 scons: building terminated because of errors.

Invalid Function for Setter: VoxelTerrain::set_material for property: material

Hello folks!

After compiling godot_voxel on Ubuntu 18.04, with GCC 7.4, I got the following error on console, when starting godot:

Godot Engine v3.2.dev.custom_build.e14e08cfc - https://godotengine.org
OpenGL ES 3.0 Renderer: GeForce GT 710/PCIe/SSE2
 
ERROR: add_property: Invalid Function for Setter: VoxelTerrain::set_material for property: material
   At: core/class_db.cpp:934.

Even so, the Voxel module seems to be working fine.

Occasional crash when testing VoxelLodTerrain

I'm sometimes getting a crash when testing VoxelLodTerrain. It's happening randomly, but so far it's been happening when duplicate_rejection is enabled in one of the threaded block managers. I need to investigate more to find the cause. It seems to happen more if you move fast in a very erratic way, back and forth etc.
I suspect this one has been there for a while according to 3465334

Clues:

Assigning an input block in shared input, but the previous value in the vector contains a Ref<T> with uninitialized memory, causing garbage delete. Considering stuff like this is able to run, it could be a vector overrun. I also found that in Godot debug builds, _DEBUG isn't defined on Windows, which disables STL boundary checks...
image

Inserting an item into the block_indexes HashTable which is used for duplicate rejection. But that hashmap's memory was already freed according to the magic number there
image

Okay, I think I found it.
duplicate rejection isn't locking the mutex to access block_indexes, and both threads are writing to it.

VoxelMeshInstance

VoxelTerrain is nice and all but for small models and tests having a finite non-chunked way of rendering voxels would be useful. Roughly same settings as VoxelTerrain, but with ability to throw in a VoxelBuffer, or a VoxelStream of finite size.
For editor usability this could make use of a VoxelMesh resource which would basically wrap a VoxelBuffer and an ArrayMesh.

Add on docs to enable vertex color in order to enable AO

Hello folks!

Maybe I missed something, but I discovered by reading the source that we got a nice Ambient Occlusion if we just enable Vertex Color (Use as Albedo) on Material. When I first read the getting started, this wasn't obvious for me, so I think this should have a better emphasis on docs.

Thanks!

Compile Error on Godot 3 (master) related to PoolVector

The issue with opensimplex (Zylann/godot_opensimplex#2) was solved by the PR (thanks @Xrayez), and Godot now compiles with opensimplex.

However now I get the following error when compiling voxel with Godot 3 master, both when compiling with the opensimplex module and alone.

modules/voxel/voxel_mesher_smooth.cpp: In function 'void copy_to(PoolVector&, Vector&)':
modules/voxel/voxel_mesher_smooth.cpp:54:2: error: need 'typename' before 'PoolVector::Write' because 'PoolVector' is a dependent scope
PoolVector::Write w = to.write();
^~~~~~~~~~~~~

Full pastebin of the errors: https://pastebin.com/UnXu7g6R

I think I saw a discussion about PoolVector in some PR recently, but I can't seem to find it again.

Thanks again and I am looking forward to making this work!

Cave culling algorithm

I would like to implement a BFS cave-culling algorithm, as explained here https://tomcc.github.io/2014/08/31/visibility-1.html

Doing it should be relatively simple and extremely efficient for this kind of voxel terrain, however part of its efficiency relies on having control over frustrum culling.
Two alternatives:

  • Set custom data per visual instance so it can be accessed by the renderer
  • Setup a custom culling algorithm for a group of visual instances, which replaces frustrum culling
  • Perfom the BFS in process, however limiting active cameras to 1 and not benefiting from multithreaded renderer mode
  • Have a way to completely disable frustrum culling for a group of mesh instances

If I don't do any of these, the only thing I can do is to turn visibility of blocks on/off constantly in process, while still having classic frustrum culling crunching hundreds of blocks for no reason (and being slow at this). On top of that, in Godot invisible meshes are also taken to frustrum culling anyways...

I have no idea yet how that can be done without having to fork the entire engine in addition to developping a module, that sounds quite impractical.
I'll probably give it a go later and see what the concrete requirements happen to be.

The state of this module

I am currently having a dilemma with this C++ module and the demo that uses it. People got interested in it and wanted to make a game as well, which is great. Turns out, it's my turn.
I would like to make a game out of this (or at least, an experiment I enjoy making). But as I progress through the requirements, I would have to add C++ features that are no longer generic, but required for efficiency.

So I am willing to turn the module into an actual game made in C++ with a high-level GDScript layer, with a more narrow set of goals than general voxel rendering. If I do that game though, the downside is that the license could change and it will no longer be seen as a tool you can use or even sell for your own game.

That also means I would have to fork the C++ repo for that. It's fine to do it since I would expect other people wanting to make a game to do the same anyways if they want their game in C++ too, because the current module is mostly a proof of concept rather than a polished tool and it's better to tweak it for your needs. However, I have been the only main contributor to this module, and that would mean I no longer maintain the old one after my fork. I would still work on the same area, but the priorities would become those of my own game.

The goal of my game and this module are going to diverge slightly. My current voxel module is strictly about rendering boundless voxel-like data, so game-specific features cannot be added to it.
A good side is, it's likely that my new repo will be open-source, so if people are wondering how to make caves, structures, trees or whatever technique not strictly related to voxel rendering, they could learn it from there. Eventually, if I figure out a way to improve the generic module as I make my game, that could be cherry-picked.
On a more precise note, I am not aiming for "smooth" voxels in that game, so I it unlikely for me to add LOD or dual countouring anytime soon, even though there is currently a basic Transvoxel mesher, which I originally made just for fun.

Nothing happened yet, so that might change a little as I go through this. The best scenario would be that I find a way to cleanly separate my game and the module without being too intrusive. These are my thoughts at the moment, just so you are aware ;)

Tutorial

Hey this isn't really an issue but I'm fairly new and trying to make a game using voxels, how would I go about using this module? I cloned it to the module folder but how do you set up godot from the source code? I tried making an executable using SCon but no luck. Any help is appreciated :)

compile error

when compiling, StaticObject does not have set_shape method, it is not found. Can I have an advice to rewrite correctly?

Moving terrain around

Currently, it's not possible to move the terrains (both normal and lod) around in the scene.

for static terrain, this may not be necessary, but it could be useful in some cases.

References on volume surface extraction algorithms

Marching cubes

Simple, but flawed by ambiguous cases and cannot reproduce sharp features. Also, no specification of how to handle LOD across regions of different detail. Naive implementations often miss out vertex sharing and end up with flat normals, or do it slowly compared to Transvoxel. So later algorithms may be preferred.

Transvoxel

Extension of Marching Cubes with a solution for LOD across regions of different detail. Doesn't handle sharp features, but is a good entry-level candidate for large voxel terrain in a game.
A part of this algorithm is implemented in the module already, but misses LOD and texturing.
It is now fully implemented and is very fast (no octrees, no hashmaps, vertex sharing is built-in), although texturing uses a different technique than the one described in the paper.
Seams handling is nice, but quite annoying to put up in Godot because it requires the ability to manipulate the index buffer very fast (not possible with current API), or multiply even more the amount of meshes (this might be a problem for any meshing algorithm relying on transition meshes).

Dual contouring

Different approach to marching cubes, which handles sharp features, but requires voxel data to also contain normals, or gradient (Hermite data), which is quite a high expectation. It requires more calculations to generate the data (getting derivatives analytically is a big challenge notably for graph generators), and a lot more space to occupy in memory for edited regions. It has inter-cell dependency (cells cannot be evaluated independently) and complexity lies in corner cases. Still need to see how stitching LODs would work there.

https://www.boristhebrave.com/2018/04/15/dual-contouring-tutorial/

Manifold dual contouring

Variant of Dual Contouring. According to @tinmanjuggernaut it would be the best DC variant to implement. https://www.youtube.com/watch?v=l3K-tD3TMqQ&feature=youtu.be&t=514

Cubical Marching Squares

Technique using 2D marching squares and wrapping it back in 3D, claiming to support sharp features by the use of Hermite data but also remove the inter-cell dependency found in Dual Contouring, making it easier to parallelize. Sounds to be a bit more complex.
Implementations:
https://github.com/mkeeter/kokopelli/blob/master/libfab/asdf/cms.c
https://bitbucket.org/GRassovsky/cubical-marching-squares

Dual Marching Cubes

Adaptive extension to marching cubes. The original paper also claims to support sharp features, but implementation in this module only stores a distance field without QEF for speed, so gradients are computed on the fly.
#15
Currently implemented in the module, but the adaptative part of the algorithm didn't work well, mostly due to use of 8-bit distance field. Remains to be investigated once the module supports 16-bit precision distance field.
Texturing is not implemented and wasnt maintained since Transvoxel took over.

Surface nets

https://bonsairobo.medium.com/smooth-voxel-mapping-a-technical-deep-dive-on-real-time-surface-nets-and-texturing-ef06d0f8ca14

Elastic Surface Nets

https://www.youtube.com/watch?v=Rc1ztktWxJs

No Man's Sky

GDC talk from a dev:
https://www.youtube.com/watch?v=sCRzxEEcO2Y
They use a custom dual contouring with LOD, and they handle seams by simply polygonizing a small distance over neighboring blocks, but using a lower isolevel so they match up with very little artifacts. This seams technique could work with other algorithms, and I tried with Transvoxel, but it resulted very often in Z-fighting with the Godot renderer and a workaround has yet to be found.

Creating physics shapes is extremely slow

To put things in context, this module relies on creating a lot of unique meshes at runtime (in the hundreds). Most of it is done inside threads, but a small part is done on the main thread at a limited pace to prevent game freezing. Unfortunately, with physics turned on, Godot-related overhead is murdering that phase's performance, making the game really slow to react to dynamically loading and changing terrain (would still happen if it was done in a thread though because it's just too slow).

Creating a collision mesh is 20 times slower than creating the visual mesh. Optimizing this is important even for single edits, as they aren't as snappy as they can be.

This graph says it all, for a SINGLE 32x32x32 voxel block:

Debug build
image

Release_Tools build:
image

Debug takes 80 ms, release takes 8 ms, but overall the relative timings remain the same. There is room to at least double the speed of this.

Copying from #48:
Creating the physics mesh is litterally asking VisualServer for the vertices, which further destroys framerate not only because it triggers again the wait for the render thread, but also because it might pull the data back from the graphics card. I hope I'm wrong about the latter...
Those vertices are generated for unique voxel meshes so the cache in Mesh is also useless. But more importantly, since they are in RAM already (since I generate them), there is no point using VisualServer for anything physics-related.

Also Godot builds a BVH when TriangleMesh is created, which is completely useless when Bullet is used anyways. It basically takes almost HALF the time doing this.

One way to get around the wasted BVH would be to use set_faces() ourselves rather than using create_trimesh_shape().

Why not GDNative?

Sorry if the issue tracker isn't the appropriate place to ask this, but I wasn't sure where would be better.

I'm curious why this is implemented as a module instead of GDNative. I'm not particularly familiar with either, so I don't know what the limitations may be, but GDNative would have the benefit of not needing to compile Godot from scratch to use this.

issue with included headers

Hello,
I wanted to try your library so I cloned the latest Godot repo and added your repo into the modules/ folder (and I renamed it voxel). However when I tried to compile it with Clang on ArchLinux, I couldn't do it straight away. I had to look into your sources and change the path of each include referencing Godot's sources.

Should I make a pull request, even though it is just a matter of changing the paths ?

Development setup of module

Hello folks!

I want to add a lighting system like Minecraft has, that uses a baked lighting value (0-15), has sun lighting and artifical lighting and uses flood-fill to spread it around.

But my question is: How do you guys develop it on godot? I saw this guide on official docs, but just wondering if that's the way or if there is another.

I'm using VSCode on Ubuntu 18.04

Thanks!

LOD on streaming world

What exists now

Currently the VoxelTerrain node is capable of streaming the world pseudo-infinitely (up to floating-point limits). It works pretty well, with either cubic or smooth meshes, but it only works with a sparse grid, which only renders a single level of detail. Due to this, its view distance is limited, and was originally suited for Minecraft-like games.

What is needed

I started researching Level-of-Detail implementation, in order to see much larger terrains, with a new node VoxelLodTerrain (WIP name). It would be specialized on smooth terrain first, as it's more naturally decimable. Think "No Man's Sky" or "Space Engineers" as an ideal use case for this.

There are pretty tough constraints to deal with, which the current terrain similarly handles:

  • Loading voxels at a given LOD is asynchronous, i.e you can't just have the data you need immediately, and anything could happen in between (the player can move around, or edit the world).
  • Meshing voxels is asynchronous too, this is all to avoid hiccups and increasing speed
  • Neighbors blocks are required for a chunk of voxels to be polygonized properly, or seams quickly appear due to normals not matching
  • It should assume infinite world, as the other terrain type already did. The world can't be considered entirely loaded or having bounds, only a part will be present, around the player (a finite world can still be built by providing no data across given boundaries).
  • The world can be edited by the player

How to determine LODs and how to store them

Note: 1 block = 16x16x16 voxels

In VoxelTerrain, the blocks to load are determined by a simple cubic region around the player.
For VoxelLodTerrain, I figured out I would use an octree data structure instead, with a root as big as what the rendering engine can possibly see.
This octree would be traversed regularly to get which blocks need to be visible at any point, as a goal. Then, the rest of the logic is about asynchronously churning data to approach this goal at decent speed, as the player moves and eventually modifies the world.
Since an octree has a root of finite size, and I want an infinite world, chances are I will use a sparse grid of octrees later on.

image

Data would be stored in multiple sparse grids (VoxelMap), one for each level of detail. This way, any block at any LOD can be accessed horizontally, and it makes it easy to modify the base LOD directly without having to traverse an octree. It basically makes each LODs independent from each other so they can be updated with the same logic.

image

Even though this is all about LOD, we may still load much more data than the other type of terrain. Fortunately, voxel data isn't that big on nowadays' machines (16 megabytes for 256x256x256 voxels), and each LOD grid would have the same weight since only their scale change. So you can imagine 8 LODs could take you about 128 megabytes in the very worst case if nothing is compressed.
I haven't made any attempt at compressing, except for completely uniform blocks (like air). RLE is a good first candidate for this, if that proves to be a problem.

How to handle seams

I've seen techniques like in Transvoxel where 3D T-junctions are polygonized depending on neighbors, but for now I'm not worrying too much about the seams themselves. I'm rather considering a much cheaper technique to start with, explained here: https://www.volume-gfx.com/volume-rendering/level-of-detail/marching-squares-skirts/

How to organize data loading

One of the main issues I'm trying to solve right now is how to organize the data to accomplish neighboring at all. If I keep the data matching the visuals like it did in VoxelTerrain, I would have to make sure every block in a given LOD needs to be surrounded by other blocks within the same LOD which may not appear visually. Basically, loading extra data, which would overlap with other LODs.
It would require housekeeping to unload them, because while the octree provides which blocks need to be visible, it doesn't tell what happens to those not used directly for visuals.

So it's clear I need to consider data doesn't need to match visuals anymore, so a block could be actively loaded, but not have any mesh associated yet. It could even work like VoxelTerrain, only on multiple grids at a time.
If maintaining this data updated is too expensive for the main thread, it can be spread across frames since we know already VoxelTerrain works well doing that, so like it could go through 8 grids in 8 frames. There is no urge to do them all in one frame.

How to prevent "loading holes"

I realized later that if I follow the steps I described so far, the map might end up stabilizing around the location where the player is. However... before that, there is no guarantee that the loading will be seamless. Indeed, temporary "block holes" could be created by the fact each LOD would update at its own rate.
This is because usually, when an octree is used for LOD, the visuals update immediately when its nodes subdivide or unsubdivide. Here, this is not the case: data and meshes built using this data are produced asynchronously, after a significant delay. It causes the octree and the visuals to always be slightly out of sync, and holes may appear.

Intuitively, I wondered if there was a way to just prevent the octree from subdividing or unsubdividing based on the following rules:

  • A node can subdivide only if all meshes that would replace it are ready.
  • A node can unsubdivide only if the mesh that would replace it is ready.

However, it seems that would complicate its implementation quite a lot, but I haven't tried yet. The octree I drafted so far is generic, maybe it would need a complete specialization instead.

Then I considered building all meshes in advance, sort of. I could mesh all blocks, just like VoxelTerrain, but for every LOD, and turn them visible or invisible when the octree says so. There would be holes during initial loading, and not after. However, the amount of meshes could have a big hit on memory.

This would reduce messages from the octree to two simple cases:

  • The mesh is available when it needs to be toggled, do it now
  • The mesh is not available, just pass then, don't block the octree. But when it gets available, inspect the octree or some cache to know if it should be shown.

I'm still not decided on the definitive approach for this, so it needs experimentation.

Editing the world

I'm not working on this yet, as I'm focusing on the previous topic. All I know for now is that it would either involve replaying edits at all LODs, or have a much dumber process taking higher LODs and computing lower ones from them (like how we generate texture mipmaps). 8-bit distance fields could complicate this as they would inevitably "sharpen" if simply dowscaled, causing jagged results, because they can't represent more than a small distance.

Improving LOD / exploiting procedural sources

LOD downscaling with smooth voxels comes with drawbacks. Typically, features of the terrain will either be lost or exxagerated. Currently, the module assumes nearest-neighbor sampling, which is the fastest method and works well in most terrain use cases.

But for regular surfaces, it's more noticeable, here seen on the "roads" of heightmap generation:

image

Those ridges are a limitation of the LOD method itself. I use nearest-neighbor to do this, which is fine on organic terrain, but more noticeable on hard surfaces like this. The downscaling can't represent the height of the surface as accurately, so at some speciflc heights it is offset by a lot. That could be a problem with the generator though.
Also this implementation of DMC isn't good at hard surfaces anyways (since it's basically marching cubes at the moment).
Some way to mitigate this would be to try alternative downscaling methods, rework the generator in use here, or have higher-precision voxels (current is 8-bit).
See https://0fps.net/2012/08/20/simplifying-isosurfaces-part-2/

Visually, with nearest-neighbors, this happens (1D representation, in reality the problem exists with cubes of 8 voxels to turn into 1):
image
Or
image

Although, since this terrain isn't yet editable, this problem likely happens in the generator.

Make LOD terrain infinitely paged

When using a heightmap on VoxelLodTerrain, any values under around 70 get cut off.
VoxelTerrain does not have this problem.

This was made with a simple white to black gradient:

image

Increasing black by 10s, I was able to connect it by making the gradient 255-70.

image

Won't compile with gcc

master
gcc 8.3

I'm moving my dev environment to linux. Gcc won't compile Voxel tools out of the box, but will with the following changes. There are two things to fix, and a whole bunch of warnings. @Zylann, I have some questions for you on how you want to fix things before I submit a PR.

1. compute_lod_count returns an int but is defined as void.
Easy. Diff below.

2. cannot bind non-const lvalue reference of type 'LodOctree::NoDestroyAction&' to an rvalue of type 'LodOctree::NoDestroyAction'

modules/voxel/terrain/voxel_lod_terrain.cpp:158:71: error: cannot bind non-const lvalue reference of type 'LodOctree<bool>::NoDestroyAction&' to an rvalue of type 'LodOctree<bool>::NoDestroyAction'
   _lod_octree.create_from_lod_count(bs, p_lod_count, LodOctree<bool>::NoDestroyAction());

This post says it works fine in MSVC but is not portable. They said it could be fixed by making the referenced argument const. That of course made a whole cascade of other errors, which were fixed by making the operator() itself const.

I don't know if this is correct, but the changes allowed it to compile, run and my own LOD+raycast demo worked as expected.

However, I noted there were other functions that used the same style of passing "A& destroy_action" such as update(), clear(), etc. Should they have a const argument also? What do you want to do here?

Here is the minimum needed to compile:

diff --git a/terrain/lod_octree.h b/terrain/lod_octree.h
index 4ddc646..939d426 100644
--- a/terrain/lod_octree.h
+++ b/terrain/lod_octree.h
@@ -37,7 +37,7 @@ public:
        };
 
        struct NoDestroyAction {
-               inline void operator()(Node *node, int lod) {}
+               inline void operator()(Node *node, int lod) const {}
        };
 
        template <typename A>
@@ -47,7 +47,7 @@ public:
                _base_size = 0;
        }
 
-       static void compute_lod_count(int base_size, int full_size) {
+       static int compute_lod_count(int base_size, int full_size) {
                int po = 0;
                while (full_size > base_size) {
                        full_size = full_size >> 1;
@@ -57,7 +57,7 @@ public:
        }
 
        template <typename A>
-       void create_from_lod_count(int base_size, unsigned int lod_count, A &destroy_action) {
+       void create_from_lod_count(int base_size, unsigned int lod_count, const A &destroy_action) {
                ERR_FAIL_COND(lod_count > 32);
                clear(destroy_action);
                _base_size = base_size;
diff --git a/terrain/voxel_lod_terrain.h b/terrain/voxel_lod_terrain.h
index 7ec903b..aca8c60 100644
--- a/terrain/voxel_lod_terrain.h
+++ b/terrain/voxel_lod_terrain.h
@@ -78,7 +78,7 @@ private:
        bool check_block_loaded_and_updated(const Vector3i &p_bpos, unsigned int lod_index);
 
        template <typename A>
-       void for_all_blocks(A &action) {
+       void for_all_blocks(const A &action) {
                for (int lod_index = 0; lod_index < MAX_LOD; ++lod_index) {
                        if (_lods[lod_index].map.is_valid()) {
                                _lods[lod_index].map->for_all_blocks(action);

3. There are a ton of warnings from the voxel module.
So many that I had to turn off warnings just so I could see the errors above to fix them. They are only warnings, but should probably be fixed at some point. I can fix some of them now if you like, but some are interwoven throughout the whole module.

Easy fix:

modules/voxel/terrain/voxel_map.h:96:3: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   while (key = _blocks.next(key)) {

Most have to do with comparing a signed int to an unsigned int. Some are an easy fix:

modules/voxel/terrain/block_thread_manager.h:172:37: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
   for (int job_index = 0; job_index < _job_count && i < input.blocks.size(); ++job_index) {

Some have a caveat:

_FORCE_INLINE_ bool validate_pos(unsigned int x, unsigned int y, unsigned int z) const {
                return x < _size.x && y < _size.y && z < _size.z;
        }

_size is a Vector3i which uses signed ints. So this function is easy to fix. But then you have similar functions that do not compare and do not give warnings, but they still use unsigned ints when the underlying data are signed. Is this a problem?

_FORCE_INLINE_ unsigned int get_volume() const {
                return _size.x * _size.y * _size.z;
        }

Some sign comparison complaints are in code that looks like this. I don't want to just go through and start changing functions around. Do I change the arguments in hermite_value, or the return type in voxel_buffer? Perhaps it makes sense to change _size to an unsigned vector3i and make everything unsigned ints?

meshers/dmc/hermite_value.h:
inline float get_isolevel_clamped(const VoxelBuffer &voxels, unsigned int x, unsigned int y, unsigned int z) {
        x = x >= voxels.get_size().x ? voxels.get_size().x - 1 : x;


voxel_buffer.h:
_FORCE_INLINE_ int get_size_x() const { return _size.x; }

What would you like to do about these warnings?

VoxelBlock::create does not set buffer size

The helper-function
VoxelBlock::create(Vector3i bpos, VoxelBuffer * buffer)
creates a new VoxelBuffer but does not set buffer->size

Example:
If you call VoxelMap::set_voxel([...]) on a non-existing block, a new VoxelBuffer is created.
But then the function fails in
VoxelBuffer::set_voxel([...]) at ERR_FAIL_COND(!validate_pos(x, y, z));

Fixing with initializing buffer with default size:

VoxelBlock * VoxelBlock::create(Vector3i bpos, VoxelBuffer * buffer) {
	VoxelBlock * block = memnew(VoxelBlock);
	block->pos = bpos;
	if (buffer) {
		const int bs = VoxelBlock::SIZE;
		ERR_FAIL_COND_V(buffer->get_size() != Vector3i(bs, bs, bs), NULL);
	}
	else {
		buffer = memnew(VoxelBuffer);
		buffer->create(SIZE, SIZE, SIZE);
	}
	ERR_FAIL_COND_V(buffer == NULL, NULL);
	block->voxels = Ref<VoxelBuffer>(buffer);
	//block->map = &map;
	return block;
}

Understanding VoxelBuffer::copy_from fail condition

Hello folks!

Given the method VoxelBuffer::copy_from bellow:

void VoxelBuffer::copy_from(const VoxelBuffer &other, unsigned int channel_index) {
ERR_FAIL_INDEX(channel_index, MAX_CHANNELS);
ERR_FAIL_COND(other._size == _size);
Channel &channel = _channels[channel_index];
const Channel &other_channel = other._channels[channel_index];
if (other_channel.data) {
if (channel.data == NULL) {
create_channel_noinit(channel_index, _size);
}
memcpy(channel.data, other_channel.data, get_volume() * sizeof(uint8_t));
} else if (channel.data) {
delete_channel(channel_index);
}
channel.defval = other_channel.defval;
}

Why it must ensure the previous buffer isn't equals to current one?

ERR_FAIL_COND(other._size == _size);

Reading the method, doesn't make sense it fails if the new buffer has the same size the current one. Shouldn't it be?

 ERR_FAIL_COND(other._size != _size);

Thanks!

Add license file and headers

Hi, I'm interested in tryng out your module but I'm unable to find License file or headers.
Would you please add them?

Compilation error with Godot 3.1

I'm getting this error when trying to compile:

modules/voxel/voxel_map.h: In member function 'void VoxelMap::remove_block(Vector3i, Action_T)':
modules/voxel/voxel_map.h:65:50: error: invalid use of incomplete type 'class VoxelBlock'
   if(_last_accessed_block && _last_accessed_block->pos == bpos)

Voxels with CSG primitives?

(Not an issue, just a question).
Is possible to use CSGBox or others for make voxels? Can be better or worst in terms of performance?

Any reason for not using "auto" on code base?

Hello folks!

I'm just wondering if there is any reason why not use the auto keyword of C++? It's been there since C++11 and our code base can compile C++17 if I'm not mistaken.

In some parts of code, instead of typing:
const VoxelLightSpreader::OutputBlock &out_block = output.blocks[i];

One would just do:
auto &out_block = output.blocks[i];

I'm asking it before using auto because we should have some kind of "code convention" IHMO.

Thanks!

Godot 3 c# Mono

Trying to compile mono with this module doesn't seem to work. Is it possible to get c# mono bindings for this?

A VoxelTerrain in one scene is visible in all scene tabs

Repro:

  1. Open scene with a VoxelTerrain in it
  2. Open another scene in a new tab, notice the terrain stays visible in both

This happens since I use VisualServer directly for meshes, VoxelTerrain must listen for world/scenario change I think

Redrawing occasionally shows brief holes in the terrain

Often when modifying a terrain, an update draws an artifact that breaks the illusion of being deep inside the terrain. It's quick, but not imperceptible even at high framerates. If you turn on vsync and/or multithreading the redraw speed is slower and they are even more noticeable.

In all three examples below, I'm digging deep into a mountain, yet one frame shows light peeking through, then it disappears. In the first example, this might have happened on two sections simultaneously. Most edits draw fine, but I could reproduce the artifact in less than a minute.

It only occurs during the redraw of the edit. Once the edit completes it's fine. It's like it deletes the mesh, then gets hung up long enough for the renderer to draw the frame as is, then finally creates the new mesh in the next frame.

image

If you want to see it, you'll probably want to use my demo (in my PR) so you can test high amounts of changes. I've been regularly updating it and it does a pretty good job of keeping the camera within the terrain. See the readme for controls, but right-click destroys terrain.

Got an error while compiling from mac osx

Please let me know if I shouldn't be posting here. :)

This is the error that I got:
In file included from modules/voxel/voxel_mesh_updater.cpp:3:
modules/voxel/utility.h:5:10: fatal error: 'core/dvector.h' file not found
#include <core/dvector.h>

Here's the entire log:
scons platform=osx scons: Reading SConscript files ... Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1 YASM is necessary for WebM SIMD optimizations. WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported! Checking for C header file mntent.h... (cached) no scons: done reading SConscript files. scons: Building targets ... [Initial build] Linking Static Library ==> main/libmain.osx.tools.64.a Ranlib Library ==> main/libmain.osx.tools.64.a [Initial build] Compiling ==> modules/register_module_types.gen.cpp [Initial build] Compiling ==> modules/bmp/image_loader_bmp.cpp [Initial build] Compiling ==> modules/bmp/register_types.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btDbvt.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btDispatcher.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcherMt.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btGhostObject.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btManifoldResult.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/btUnionFind.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btBoxShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btBox2dShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btCapsuleShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btCollisionShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btCompoundShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConcaveShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConeShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvexHullShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvexShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvex2dShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btCylinderShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btEmptyShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btMiniSDF.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btSdfCollisionShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btShapeHull.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btSphereShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTriangleBuffer.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTriangleCallback.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTriangleMesh.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btContactProcessing.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btGenericPoolAllocator.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btGImpactBvh.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btGImpactShape.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/btTriangleShapeEx.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/gim_box_set.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/gim_contact.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/gim_memory.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/Gimpact/gim_tri_collision.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Character/btKinematicCharacterController.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btGearConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorldMt.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Dynamics/btRigidBody.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Vehicle/btRaycastVehicle.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Vehicle/btWheelInfo.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyFixedConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodySliderConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyGearConstraint.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/MLCPSolvers/btDantzigLCP.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletInverseDynamics/IDMath.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletInverseDynamics/MultiBodyTree.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletInverseDynamics/details/MultiBodyTreeInitCache.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftBody.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftBodyHelpers.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp [Initial build] Compiling ==> thirdparty/bullet/BulletSoftBody/btDefaultSoftBodySolver.cpp [Initial build] Compiling ==> thirdparty/bullet/clew/clew.c [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btAlignedAllocator.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btConvexHull.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btConvexHullComputer.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btGeometryUtil.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btPolarDecomposition.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btQuickprof.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btSerializer.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btSerializer64.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btThreads.cpp [Initial build] Compiling ==> thirdparty/bullet/LinearMath/btVector3.cpp [Initial build] Compiling ==> modules/bullet/area_bullet.cpp In file included from modules/bullet/area_bullet.cpp:31: In file included from modules/bullet/area_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/area_bullet.cpp:31: In file included from modules/bullet/area_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/btRayShape.cpp In file included from modules/bullet/btRayShape.cpp:31: In file included from modules/bullet/btRayShape.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h:19: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btConvexShape.h:19: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btCollisionShape.h:19: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/btRayShape.cpp:31: In file included from modules/bullet/btRayShape.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h:19: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btConvexShape.h:19: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btCollisionShape.h:19: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/bullet_physics_server.cpp In file included from modules/bullet/bullet_physics_server.cpp:31: In file included from modules/bullet/bullet_physics_server.h:34: In file included from modules/bullet/area_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/bullet_physics_server.cpp:31: In file included from modules/bullet/bullet_physics_server.h:34: In file included from modules/bullet/area_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/bullet_types_converter.cpp In file included from modules/bullet/bullet_types_converter.cpp:31: In file included from modules/bullet/bullet_types_converter.h:39: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/bullet_types_converter.cpp:31: In file included from modules/bullet/bullet_types_converter.h:39: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/collision_object_bullet.cpp In file included from modules/bullet/collision_object_bullet.cpp:31: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/collision_object_bullet.cpp:31: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/cone_twist_joint_bullet.cpp In file included from modules/bullet/cone_twist_joint_bullet.cpp:31: In file included from modules/bullet/cone_twist_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/cone_twist_joint_bullet.cpp:31: In file included from modules/bullet/cone_twist_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/constraint_bullet.cpp In file included from modules/bullet/constraint_bullet.cpp:31: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/constraint_bullet.cpp:31: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/generic_6dof_joint_bullet.cpp In file included from modules/bullet/generic_6dof_joint_bullet.cpp:31: In file included from modules/bullet/generic_6dof_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/generic_6dof_joint_bullet.cpp:31: In file included from modules/bullet/generic_6dof_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/godot_collision_configuration.cpp In file included from modules/bullet/godot_collision_configuration.cpp:33: In file included from modules/bullet/godot_ray_world_algorithm.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h:20: In file included from thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h:19: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/godot_collision_configuration.cpp:33: In file included from modules/bullet/godot_ray_world_algorithm.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h:20: In file included from thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h:20: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/godot_collision_dispatcher.cpp In file included from modules/bullet/godot_collision_dispatcher.cpp:31: In file included from modules/bullet/godot_collision_dispatcher.h:36: In file included from thirdparty/bullet/btBulletDynamicsCommon.h:20: In file included from thirdparty/bullet/btBulletCollisionCommon.h:22: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h:77: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/godot_collision_dispatcher.cpp:31: In file included from modules/bullet/godot_collision_dispatcher.h:36: In file included from thirdparty/bullet/btBulletDynamicsCommon.h:20: In file included from thirdparty/bullet/btBulletCollisionCommon.h:22: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h:78: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/godot_ray_world_algorithm.cpp In file included from modules/bullet/godot_ray_world_algorithm.cpp:31: In file included from modules/bullet/godot_ray_world_algorithm.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h:20: In file included from thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h:19: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/godot_ray_world_algorithm.cpp:31: In file included from modules/bullet/godot_ray_world_algorithm.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h:20: In file included from thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h:20: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/godot_result_callbacks.cpp In file included from modules/bullet/godot_result_callbacks.cpp:31: In file included from modules/bullet/godot_result_callbacks.h:36: In file included from thirdparty/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/godot_result_callbacks.cpp:31: In file included from modules/bullet/godot_result_callbacks.h:37: In file included from thirdparty/bullet/btBulletDynamicsCommon.h:20: In file included from thirdparty/bullet/btBulletCollisionCommon.h:22: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h:78: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/hinge_joint_bullet.cpp In file included from modules/bullet/hinge_joint_bullet.cpp:31: In file included from modules/bullet/hinge_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/hinge_joint_bullet.cpp:31: In file included from modules/bullet/hinge_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/joint_bullet.cpp In file included from modules/bullet/joint_bullet.cpp:31: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/joint_bullet.cpp:31: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/pin_joint_bullet.cpp In file included from modules/bullet/pin_joint_bullet.cpp:31: In file included from modules/bullet/pin_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/pin_joint_bullet.cpp:31: In file included from modules/bullet/pin_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/register_types.cpp In file included from modules/bullet/register_types.cpp:33: In file included from modules/bullet/bullet_physics_server.h:34: In file included from modules/bullet/area_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/register_types.cpp:33: In file included from modules/bullet/bullet_physics_server.h:34: In file included from modules/bullet/area_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/rigid_body_bullet.cpp In file included from modules/bullet/rigid_body_bullet.cpp:31: In file included from modules/bullet/rigid_body_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/rigid_body_bullet.cpp:31: In file included from modules/bullet/rigid_body_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/shape_bullet.cpp In file included from modules/bullet/shape_bullet.cpp:31: In file included from modules/bullet/shape_bullet.h:41: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/shape_bullet.cpp:33: In file included from modules/bullet/btRayShape.h:36: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h:19: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btConvexShape.h:19: In file included from thirdparty/bullet/BulletCollision/CollisionShapes/btCollisionShape.h:19: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/shape_owner_bullet.cpp [Initial build] Compiling ==> modules/bullet/slider_joint_bullet.cpp In file included from modules/bullet/slider_joint_bullet.cpp:31: In file included from modules/bullet/slider_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/slider_joint_bullet.cpp:31: In file included from modules/bullet/slider_joint_bullet.h:34: In file included from modules/bullet/joint_bullet.h:34: In file included from modules/bullet/constraint_bullet.h:37: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h:20: In file included from thirdparty/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h:21: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/soft_body_bullet.cpp In file included from modules/bullet/soft_body_bullet.cpp:31: In file included from modules/bullet/soft_body_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: In file included from thirdparty/bullet/LinearMath/btMatrix3x3.h:18: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/soft_body_bullet.cpp:31: In file included from modules/bullet/soft_body_bullet.h:34: In file included from modules/bullet/collision_object_bullet.h:40: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/bullet/space_bullet.cpp In file included from modules/bullet/space_bullet.cpp:31: In file included from modules/bullet/space_bullet.h:36: In file included from modules/bullet/godot_result_callbacks.h:36: In file included from thirdparty/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h:20: thirdparty/bullet/LinearMath/btVector3.h:335:7: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] y = bt_splat_ps(y, 0x80); ^~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ In file included from modules/bullet/space_bullet.cpp:31: In file included from modules/bullet/space_bullet.h:36: In file included from modules/bullet/godot_result_callbacks.h:37: In file included from thirdparty/bullet/btBulletDynamicsCommon.h:20: In file included from thirdparty/bullet/btBulletCollisionCommon.h:22: In file included from thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h:78: In file included from thirdparty/bullet/LinearMath/btTransform.h:18: thirdparty/bullet/LinearMath/btMatrix3x3.h:910:14: warning: argument value 10880 is outside the valid range [0, 255] [-Wargument-outside-range] __m128 vk = bt_splat_ps(_mm_load_ss((float*)&k), 0x80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:43:29: note: expanded from macro 'bt_splat_ps' #define bt_splat_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, _i)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thirdparty/bullet/LinearMath/btVector3.h:41:33: note: expanded from macro 'bt_pshufd_ps' #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include/xmmintrin.h:2608:11: note: expanded from macro '_mm_shuffle_ps' (__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ ^ 2 warnings generated. [Initial build] Compiling ==> modules/csg/csg.cpp [Initial build] Compiling ==> modules/csg/csg_gizmos.cpp [Initial build] Compiling ==> modules/csg/csg_shape.cpp [Initial build] Compiling ==> modules/csg/register_types.cpp [Initial build] Compiling ==> thirdparty/cvtt/ConvectionKernels.cpp [Initial build] Compiling ==> modules/cvtt/image_compress_cvtt.cpp [Initial build] Compiling ==> modules/cvtt/register_types.cpp [Initial build] Compiling ==> modules/dds/register_types.cpp [Initial build] Compiling ==> modules/dds/texture_loader_dds.cpp [Initial build] Compiling ==> thirdparty/enet/godot.cpp [Initial build] Compiling ==> thirdparty/enet/callbacks.c [Initial build] Compiling ==> thirdparty/enet/compress.c [Initial build] Compiling ==> thirdparty/enet/host.c [Initial build] Compiling ==> thirdparty/enet/list.c [Initial build] Compiling ==> thirdparty/enet/packet.c [Initial build] Compiling ==> thirdparty/enet/peer.c [Initial build] Compiling ==> thirdparty/enet/protocol.c [Initial build] Compiling ==> modules/enet/networked_multiplayer_enet.cpp [Initial build] Compiling ==> modules/enet/register_types.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding_ETC1.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding_R11.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding_RG11.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding_RGB8A1.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding_RGB8.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcBlock4x4Encoding_RGBA8.cpp [Initial build] Compiling ==> thirdparty/etc2comp/Etc.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcDifferentialTrys.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcFilter.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcImage.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcIndividualTrys.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcMath.cpp [Initial build] Compiling ==> thirdparty/etc2comp/EtcSortedBlockList.cpp [Initial build] Compiling ==> modules/etc/image_etc.cpp [Initial build] Compiling ==> modules/etc/register_types.cpp [Initial build] Compiling ==> modules/etc/texture_loader_pkm.cpp [Initial build] Compiling ==> modules/freetype/register_types.cpp [Initial build] build_gdnative_api_struct(["modules/gdnative/include/gdnative_api_struct.gen.h", "modules/gdnative/gdnative_api_struct.gen.cpp"], ["modules/gdnative/gdnative_api.json"]) [Initial build] Compiling ==> modules/gdnative/gdnative.cpp [Initial build] Compiling ==> modules/gdnative/register_types.cpp [Initial build] Compiling ==> modules/gdnative/android/android_gdn.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/aabb.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/array.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/basis.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/color.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/dictionary.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/gdnative.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/node_path.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/plane.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/pool_arrays.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/quat.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/rect2.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/rid.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/string.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/string_name.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/transform.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/transform2d.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/variant.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/vector2.cpp [Initial build] Compiling ==> modules/gdnative/gdnative/vector3.cpp [Initial build] Compiling ==> modules/gdnative/nativescript/api_generator.cpp [Initial build] Compiling ==> modules/gdnative/nativescript/godot_nativescript.cpp [Initial build] Compiling ==> modules/gdnative/nativescript/nativescript.cpp [Initial build] Compiling ==> modules/gdnative/nativescript/register_types.cpp [Initial build] Compiling ==> modules/gdnative/gdnative_library_singleton_editor.cpp [Initial build] Compiling ==> modules/gdnative/gdnative_library_editor_plugin.cpp [Initial build] Compiling ==> modules/gdnative/net/multiplayer_peer_gdnative.cpp [Initial build] Compiling ==> modules/gdnative/net/packet_peer_gdnative.cpp [Initial build] Compiling ==> modules/gdnative/net/register_types.cpp [Initial build] Compiling ==> modules/gdnative/net/stream_peer_gdnative.cpp [Initial build] Compiling ==> modules/gdnative/arvr/arvr_interface_gdnative.cpp [Initial build] Compiling ==> modules/gdnative/arvr/register_types.cpp [Initial build] Compiling ==> modules/gdnative/pluginscript/pluginscript_instance.cpp [Initial build] Compiling ==> modules/gdnative/pluginscript/pluginscript_language.cpp [Initial build] Compiling ==> modules/gdnative/pluginscript/pluginscript_loader.cpp [Initial build] Compiling ==> modules/gdnative/pluginscript/pluginscript_script.cpp [Initial build] Compiling ==> modules/gdnative/pluginscript/register_types.cpp [Initial build] Compiling ==> modules/gdnative/videodecoder/register_types.cpp [Initial build] Compiling ==> modules/gdnative/videodecoder/video_stream_gdnative.cpp [Initial build] Compiling ==> modules/gdnative/gdnative_api_struct.gen.cpp [Initial build] Compiling ==> modules/gdscript/gdscript.cpp [Initial build] Compiling ==> modules/gdscript/gdscript_compiler.cpp [Initial build] Compiling ==> modules/gdscript/gdscript_editor.cpp [Initial build] Compiling ==> modules/gdscript/gdscript_function.cpp [Initial build] Compiling ==> modules/gdscript/gdscript_functions.cpp [Initial build] Compiling ==> modules/gdscript/gdscript_parser.cpp [Initial build] Compiling ==> modules/gdscript/gdscript_tokenizer.cpp [Initial build] Compiling ==> modules/gdscript/register_types.cpp [Initial build] Compiling ==> modules/gdscript/editor/gdscript_highlighter.cpp [Initial build] Compiling ==> modules/gridmap/grid_map.cpp [Initial build] Compiling ==> modules/gridmap/grid_map_editor_plugin.cpp [Initial build] Compiling ==> modules/gridmap/register_types.cpp [Initial build] Compiling ==> modules/hdr/image_loader_hdr.cpp [Initial build] Compiling ==> modules/hdr/register_types.cpp [Initial build] Compiling ==> thirdparty/jpeg-compressor/jpgd.cpp [Initial build] Compiling ==> modules/jpg/image_loader_jpegd.cpp [Initial build] Compiling ==> modules/jpg/register_types.cpp [Initial build] Compiling ==> thirdparty/mbedtls/library/aes.c [Initial build] Compiling ==> thirdparty/mbedtls/library/aesni.c [Initial build] Compiling ==> thirdparty/mbedtls/library/arc4.c [Initial build] Compiling ==> thirdparty/mbedtls/library/aria.c [Initial build] Compiling ==> thirdparty/mbedtls/library/asn1parse.c [Initial build] Compiling ==> thirdparty/mbedtls/library/asn1write.c [Initial build] Compiling ==> thirdparty/mbedtls/library/base64.c [Initial build] Compiling ==> thirdparty/mbedtls/library/bignum.c [Initial build] Compiling ==> thirdparty/mbedtls/library/blowfish.c [Initial build] Compiling ==> thirdparty/mbedtls/library/camellia.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ccm.c [Initial build] Compiling ==> thirdparty/mbedtls/library/certs.c [Initial build] Compiling ==> thirdparty/mbedtls/library/chacha20.c [Initial build] Compiling ==> thirdparty/mbedtls/library/chachapoly.c [Initial build] Compiling ==> thirdparty/mbedtls/library/cipher.c [Initial build] Compiling ==> thirdparty/mbedtls/library/cipher_wrap.c [Initial build] Compiling ==> thirdparty/mbedtls/library/cmac.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ctr_drbg.c [Initial build] Compiling ==> thirdparty/mbedtls/library/debug.c [Initial build] Compiling ==> thirdparty/mbedtls/library/des.c [Initial build] Compiling ==> thirdparty/mbedtls/library/dhm.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ecdh.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ecdsa.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ecjpake.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ecp.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ecp_curves.c [Initial build] Compiling ==> thirdparty/mbedtls/library/entropy.c [Initial build] Compiling ==> thirdparty/mbedtls/library/entropy_poll.c [Initial build] Compiling ==> thirdparty/mbedtls/library/error.c [Initial build] Compiling ==> thirdparty/mbedtls/library/gcm.c [Initial build] Compiling ==> thirdparty/mbedtls/library/havege.c [Initial build] Compiling ==> thirdparty/mbedtls/library/hkdf.c [Initial build] Compiling ==> thirdparty/mbedtls/library/hmac_drbg.c [Initial build] Compiling ==> thirdparty/mbedtls/library/md2.c [Initial build] Compiling ==> thirdparty/mbedtls/library/md4.c [Initial build] Compiling ==> thirdparty/mbedtls/library/md5.c [Initial build] Compiling ==> thirdparty/mbedtls/library/md.c [Initial build] Compiling ==> thirdparty/mbedtls/library/md_wrap.c [Initial build] Compiling ==> thirdparty/mbedtls/library/memory_buffer_alloc.c [Initial build] Compiling ==> thirdparty/mbedtls/library/net_sockets.c [Initial build] Compiling ==> thirdparty/mbedtls/library/nist_kw.c [Initial build] Compiling ==> thirdparty/mbedtls/library/oid.c [Initial build] Compiling ==> thirdparty/mbedtls/library/padlock.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pem.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pk.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pkcs11.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pkcs12.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pkcs5.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pkparse.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pk_wrap.c [Initial build] Compiling ==> thirdparty/mbedtls/library/pkwrite.c [Initial build] Compiling ==> thirdparty/mbedtls/library/platform.c [Initial build] Compiling ==> thirdparty/mbedtls/library/platform_util.c [Initial build] Compiling ==> thirdparty/mbedtls/library/poly1305.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ripemd160.c [Initial build] Compiling ==> thirdparty/mbedtls/library/rsa.c [Initial build] Compiling ==> thirdparty/mbedtls/library/rsa_internal.c [Initial build] Compiling ==> thirdparty/mbedtls/library/sha1.c [Initial build] Compiling ==> thirdparty/mbedtls/library/sha256.c [Initial build] Compiling ==> thirdparty/mbedtls/library/sha512.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_cache.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_ciphersuites.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_cli.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_cookie.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_srv.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_ticket.c [Initial build] Compiling ==> thirdparty/mbedtls/library/ssl_tls.c [Initial build] Compiling ==> thirdparty/mbedtls/library/threading.c [Initial build] Compiling ==> thirdparty/mbedtls/library/timing.c [Initial build] Compiling ==> thirdparty/mbedtls/library/version.c [Initial build] Compiling ==> thirdparty/mbedtls/library/version_features.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509_create.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509_crl.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509_crt.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509_csr.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509write_crt.c [Initial build] Compiling ==> thirdparty/mbedtls/library/x509write_csr.c [Initial build] Compiling ==> thirdparty/mbedtls/library/xtea.c [Initial build] Compiling ==> modules/mbedtls/register_types.cpp [Initial build] Compiling ==> modules/mbedtls/stream_peer_mbed_tls.cpp [Initial build] Compiling ==> modules/mobile_vr/mobile_vr_interface.cpp [Initial build] Compiling ==> modules/mobile_vr/register_types.cpp [Initial build] Compiling ==> thirdparty/libogg/bitwise.c [Initial build] Compiling ==> thirdparty/libogg/framing.c [Initial build] Compiling ==> modules/ogg/register_types.cpp [Initial build] Compiling ==> thirdparty/misc/open-simplex-noise.c [Initial build] Compiling ==> modules/opensimplex/noise_texture.cpp [Initial build] Compiling ==> modules/opensimplex/open_simplex_noise.cpp [Initial build] Compiling ==> modules/opensimplex/register_types.cpp [Initial build] Compiling ==> thirdparty/opus/opus.c [Initial build] Compiling ==> thirdparty/opus/opus_decoder.c [Initial build] Compiling ==> thirdparty/opus/opus_encoder.c [Initial build] Compiling ==> thirdparty/opus/opus_multistream.c [Initial build] Compiling ==> thirdparty/opus/opus_multistream_encoder.c [Initial build] Compiling ==> thirdparty/opus/opus_multistream_decoder.c [Initial build] Compiling ==> thirdparty/opus/repacketizer.c [Initial build] Compiling ==> thirdparty/opus/analysis.c [Initial build] Compiling ==> thirdparty/opus/mlp.c [Initial build] Compiling ==> thirdparty/opus/mlp_data.c [Initial build] Compiling ==> thirdparty/opus/info.c [Initial build] Compiling ==> thirdparty/opus/internal.c [Initial build] Compiling ==> thirdparty/opus/opusfile.c [Initial build] Compiling ==> thirdparty/opus/stream.c [Initial build] Compiling ==> thirdparty/opus/celt/bands.c [Initial build] Compiling ==> thirdparty/opus/celt/celt.c [Initial build] Compiling ==> thirdparty/opus/celt/celt_encoder.c [Initial build] Compiling ==> thirdparty/opus/celt/celt_decoder.c [Initial build] Compiling ==> thirdparty/opus/celt/cwrs.c [Initial build] Compiling ==> thirdparty/opus/celt/entcode.c [Initial build] Compiling ==> thirdparty/opus/celt/entdec.c [Initial build] Compiling ==> thirdparty/opus/celt/entenc.c [Initial build] Compiling ==> thirdparty/opus/celt/kiss_fft.c [Initial build] Compiling ==> thirdparty/opus/celt/laplace.c [Initial build] Compiling ==> thirdparty/opus/celt/mathops.c [Initial build] Compiling ==> thirdparty/opus/celt/mdct.c [Initial build] Compiling ==> thirdparty/opus/celt/modes.c [Initial build] Compiling ==> thirdparty/opus/celt/pitch.c [Initial build] Compiling ==> thirdparty/opus/celt/celt_lpc.c [Initial build] Compiling ==> thirdparty/opus/celt/quant_bands.c [Initial build] Compiling ==> thirdparty/opus/celt/rate.c [Initial build] Compiling ==> thirdparty/opus/celt/vq.c [Initial build] Compiling ==> thirdparty/opus/silk/CNG.c [Initial build] Compiling ==> thirdparty/opus/silk/code_signs.c [Initial build] Compiling ==> thirdparty/opus/silk/init_decoder.c [Initial build] Compiling ==> thirdparty/opus/silk/decode_core.c [Initial build] Compiling ==> thirdparty/opus/silk/decode_frame.c [Initial build] Compiling ==> thirdparty/opus/silk/decode_parameters.c [Initial build] Compiling ==> thirdparty/opus/silk/decode_indices.c [Initial build] Compiling ==> thirdparty/opus/silk/decode_pulses.c [Initial build] Compiling ==> thirdparty/opus/silk/decoder_set_fs.c [Initial build] Compiling ==> thirdparty/opus/silk/dec_API.c [Initial build] Compiling ==> thirdparty/opus/silk/enc_API.c [Initial build] Compiling ==> thirdparty/opus/silk/encode_indices.c [Initial build] Compiling ==> thirdparty/opus/silk/encode_pulses.c [Initial build] Compiling ==> thirdparty/opus/silk/gain_quant.c [Initial build] Compiling ==> thirdparty/opus/silk/interpolate.c [Initial build] Compiling ==> thirdparty/opus/silk/LP_variable_cutoff.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_decode.c [Initial build] Compiling ==> thirdparty/opus/silk/NSQ.c [Initial build] Compiling ==> thirdparty/opus/silk/NSQ_del_dec.c [Initial build] Compiling ==> thirdparty/opus/silk/PLC.c [Initial build] Compiling ==> thirdparty/opus/silk/shell_coder.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_gain.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_LTP.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_NLSF_CB_NB_MB.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_NLSF_CB_WB.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_other.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_pitch_lag.c [Initial build] Compiling ==> thirdparty/opus/silk/tables_pulses_per_block.c [Initial build] Compiling ==> thirdparty/opus/silk/VAD.c [Initial build] Compiling ==> thirdparty/opus/silk/control_audio_bandwidth.c [Initial build] Compiling ==> thirdparty/opus/silk/quant_LTP_gains.c [Initial build] Compiling ==> thirdparty/opus/silk/VQ_WMat_EC.c [Initial build] Compiling ==> thirdparty/opus/silk/HP_variable_cutoff.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_encode.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_VQ.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_unpack.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_del_dec_quant.c [Initial build] Compiling ==> thirdparty/opus/silk/process_NLSFs.c [Initial build] Compiling ==> thirdparty/opus/silk/stereo_LR_to_MS.c [Initial build] Compiling ==> thirdparty/opus/silk/stereo_MS_to_LR.c [Initial build] Compiling ==> thirdparty/opus/silk/check_control_input.c [Initial build] Compiling ==> thirdparty/opus/silk/control_SNR.c [Initial build] Compiling ==> thirdparty/opus/silk/init_encoder.c [Initial build] Compiling ==> thirdparty/opus/silk/control_codec.c [Initial build] Compiling ==> thirdparty/opus/silk/A2NLSF.c [Initial build] Compiling ==> thirdparty/opus/silk/ana_filt_bank_1.c [Initial build] Compiling ==> thirdparty/opus/silk/biquad_alt.c [Initial build] Compiling ==> thirdparty/opus/silk/bwexpander_32.c [Initial build] Compiling ==> thirdparty/opus/silk/bwexpander.c [Initial build] Compiling ==> thirdparty/opus/silk/debug.c [Initial build] Compiling ==> thirdparty/opus/silk/decode_pitch.c [Initial build] Compiling ==> thirdparty/opus/silk/inner_prod_aligned.c [Initial build] Compiling ==> thirdparty/opus/silk/lin2log.c [Initial build] Compiling ==> thirdparty/opus/silk/log2lin.c [Initial build] Compiling ==> thirdparty/opus/silk/LPC_analysis_filter.c [Initial build] Compiling ==> thirdparty/opus/silk/LPC_inv_pred_gain.c [Initial build] Compiling ==> thirdparty/opus/silk/table_LSF_cos.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF2A.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_stabilize.c [Initial build] Compiling ==> thirdparty/opus/silk/NLSF_VQ_weights_laroia.c [Initial build] Compiling ==> thirdparty/opus/silk/pitch_est_tables.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_down2_3.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_down2.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_private_AR2.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_private_down_FIR.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_private_IIR_FIR.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_private_up2_HQ.c [Initial build] Compiling ==> thirdparty/opus/silk/resampler_rom.c [Initial build] Compiling ==> thirdparty/opus/silk/sigm_Q15.c [Initial build] Compiling ==> thirdparty/opus/silk/sort.c [Initial build] Compiling ==> thirdparty/opus/silk/sum_sqr_shift.c [Initial build] Compiling ==> thirdparty/opus/silk/stereo_decode_pred.c [Initial build] Compiling ==> thirdparty/opus/silk/stereo_encode_pred.c [Initial build] Compiling ==> thirdparty/opus/silk/stereo_find_predictor.c [Initial build] Compiling ==> thirdparty/opus/silk/stereo_quant_pred.c [Initial build] Compiling ==> thirdparty/opus/silk/float/apply_sine_window_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/corrMatrix_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/encode_frame_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/find_LPC_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/find_LTP_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/find_pitch_lags_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/find_pred_coefs_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/LPC_analysis_filter_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/LTP_analysis_filter_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/LTP_scale_ctrl_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/noise_shape_analysis_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/prefilter_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/process_gains_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/regularize_correlations_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/residual_energy_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/solve_LS_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/warped_autocorrelation_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/wrappers_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/autocorrelation_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/burg_modified_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/bwexpander_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/energy_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/inner_product_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/k2a_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/levinsondurbin_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/LPC_inv_pred_gain_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/pitch_analysis_core_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/scale_copy_vector_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/scale_vector_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/schur_FLP.c [Initial build] Compiling ==> thirdparty/opus/silk/float/sort_FLP.c [Initial build] Compiling ==> modules/opus/stub/register_types.cpp [Initial build] Compiling ==> thirdparty/pvrtccompressor/BitScale.cpp [Initial build] Compiling ==> thirdparty/pvrtccompressor/MortonTable.cpp [Initial build] Compiling ==> thirdparty/pvrtccompressor/PvrTcDecoder.cpp [Initial build] Compiling ==> thirdparty/pvrtccompressor/PvrTcEncoder.cpp [Initial build] Compiling ==> thirdparty/pvrtccompressor/PvrTcPacket.cpp [Initial build] Compiling ==> modules/pvr/register_types.cpp [Initial build] Compiling ==> modules/pvr/texture_loader_pvr.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/Recast.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastAlloc.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastArea.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastAssert.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastContour.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastFilter.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastLayers.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastMesh.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastMeshDetail.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastRasterization.cpp [Initial build] Compiling ==> thirdparty/recastnavigation/Recast/Source/RecastRegion.cpp [Initial build] Compiling ==> modules/recast/navigation_mesh_editor_plugin.cpp [Initial build] Compiling ==> modules/recast/navigation_mesh_generator.cpp [Initial build] Compiling ==> modules/recast/register_types.cpp [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_auto_possess.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_chartables.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_compile.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_config.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_context.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_convert.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_dfa_match.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_error.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_extuni.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_find_bracket.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_jit_compile.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_maketables.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_match.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_match_data.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_newline.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_ord2utf.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_pattern_info.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_serialize.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_string_utils.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_study.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_substitute.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_substring.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_tables.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_ucd.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_valid_utf.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_xclass.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_auto_possess.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_chartables.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_compile.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_config.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_context.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_convert.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_dfa_match.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_error.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_extuni.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_find_bracket.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_jit_compile.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_maketables.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_match.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_match_data.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_newline.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_ord2utf.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_pattern_info.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_serialize.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_string_utils.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_study.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_substitute.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_substring.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_tables.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_ucd.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_valid_utf.c [Initial build] Compiling ==> thirdparty/pcre2/src/pcre2_xclass.c [Initial build] Compiling ==> modules/regex/regex.cpp [Initial build] Compiling ==> modules/regex/register_types.cpp [Initial build] Compiling ==> thirdparty/squish/alpha.cpp [Initial build] Compiling ==> thirdparty/squish/clusterfit.cpp [Initial build] Compiling ==> thirdparty/squish/colourblock.cpp [Initial build] Compiling ==> thirdparty/squish/colourfit.cpp [Initial build] Compiling ==> thirdparty/squish/colourset.cpp [Initial build] Compiling ==> thirdparty/squish/maths.cpp [Initial build] Compiling ==> thirdparty/squish/rangefit.cpp [Initial build] Compiling ==> thirdparty/squish/singlecolourfit.cpp [Initial build] Compiling ==> thirdparty/squish/squish.cpp [Initial build] Compiling ==> modules/squish/image_compress_squish.cpp [Initial build] Compiling ==> modules/squish/register_types.cpp [Initial build] Compiling ==> thirdparty/misc/stb_vorbis.c [Initial build] Compiling ==> modules/stb_vorbis/audio_stream_ogg_vorbis.cpp [Initial build] Compiling ==> modules/stb_vorbis/register_types.cpp [Initial build] Compiling ==> modules/stb_vorbis/resource_importer_ogg_vorbis.cpp [Initial build] Compiling ==> thirdparty/nanosvg/nanosvg.cc [Initial build] Compiling ==> modules/svg/image_loader_svg.cpp [Initial build] Compiling ==> modules/svg/register_types.cpp [Initial build] Compiling ==> modules/tga/image_loader_tga.cpp [Initial build] Compiling ==> modules/tga/register_types.cpp [Initial build] Compiling ==> thirdparty/libtheora/bitpack.c [Initial build] Compiling ==> thirdparty/libtheora/cpu.c [Initial build] Compiling ==> thirdparty/libtheora/decinfo.c [Initial build] Compiling ==> thirdparty/libtheora/decode.c [Initial build] Compiling ==> thirdparty/libtheora/dequant.c [Initial build] Compiling ==> thirdparty/libtheora/fragment.c [Initial build] Compiling ==> thirdparty/libtheora/huffdec.c [Initial build] Compiling ==> thirdparty/libtheora/idct.c [Initial build] Compiling ==> thirdparty/libtheora/info.c [Initial build] Compiling ==> thirdparty/libtheora/internal.c [Initial build] Compiling ==> thirdparty/libtheora/quant.c [Initial build] Compiling ==> thirdparty/libtheora/state.c [Initial build] Compiling ==> thirdparty/libtheora/x86/mmxfrag.c [Initial build] Compiling ==> thirdparty/libtheora/x86/mmxidct.c [Initial build] Compiling ==> thirdparty/libtheora/x86/mmxstate.c [Initial build] Compiling ==> thirdparty/libtheora/x86/x86state.c [Initial build] Compiling ==> modules/theora/register_types.cpp [Initial build] Compiling ==> modules/theora/video_stream_theora.cpp [Initial build] Compiling ==> thirdparty/tinyexr/tinyexr.cc [Initial build] Compiling ==> modules/tinyexr/image_loader_tinyexr.cpp [Initial build] Compiling ==> modules/tinyexr/register_types.cpp [Initial build] Compiling ==> thirdparty/miniupnpc/miniupnpc.c [Initial build] Compiling ==> thirdparty/miniupnpc/upnpcommands.c [Initial build] Compiling ==> thirdparty/miniupnpc/miniwget.c [Initial build] Compiling ==> thirdparty/miniupnpc/upnpdev.c [Initial build] Compiling ==> thirdparty/miniupnpc/igd_desc_parse.c [Initial build] Compiling ==> thirdparty/miniupnpc/minissdpc.c [Initial build] Compiling ==> thirdparty/miniupnpc/minisoap.c [Initial build] Compiling ==> thirdparty/miniupnpc/minixml.c [Initial build] Compiling ==> thirdparty/miniupnpc/connecthostport.c [Initial build] Compiling ==> thirdparty/miniupnpc/receivedata.c [Initial build] Compiling ==> thirdparty/miniupnpc/portlistingparse.c [Initial build] Compiling ==> thirdparty/miniupnpc/upnpreplyparse.c [Initial build] Compiling ==> modules/upnp/register_types.cpp [Initial build] Compiling ==> modules/upnp/upnp.cpp [Initial build] Compiling ==> modules/upnp/upnp_device.cpp [Initial build] Compiling ==> modules/visual_script/register_types.cpp [Initial build] Compiling ==> modules/visual_script/visual_script.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_builtin_funcs.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_editor.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_expression.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_flow_control.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_func_nodes.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_nodes.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_property_selector.cpp [Initial build] Compiling ==> modules/visual_script/visual_script_yield_nodes.cpp [Initial build] Compiling ==> thirdparty/libvorbis/bitrate.c [Initial build] Compiling ==> thirdparty/libvorbis/block.c [Initial build] Compiling ==> thirdparty/libvorbis/codebook.c [Initial build] Compiling ==> thirdparty/libvorbis/envelope.c [Initial build] Compiling ==> thirdparty/libvorbis/floor0.c [Initial build] Compiling ==> thirdparty/libvorbis/floor1.c [Initial build] Compiling ==> thirdparty/libvorbis/info.c [Initial build] Compiling ==> thirdparty/libvorbis/lookup.c [Initial build] Compiling ==> thirdparty/libvorbis/lpc.c [Initial build] Compiling ==> thirdparty/libvorbis/lsp.c [Initial build] Compiling ==> thirdparty/libvorbis/mapping0.c [Initial build] Compiling ==> thirdparty/libvorbis/mdct.c [Initial build] Compiling ==> thirdparty/libvorbis/psy.c [Initial build] Compiling ==> thirdparty/libvorbis/registry.c [Initial build] Compiling ==> thirdparty/libvorbis/res0.c [Initial build] Compiling ==> thirdparty/libvorbis/sharedbook.c [Initial build] Compiling ==> thirdparty/libvorbis/smallft.c [Initial build] Compiling ==> thirdparty/libvorbis/synthesis.c [Initial build] Compiling ==> thirdparty/libvorbis/vorbisfile.c [Initial build] Compiling ==> thirdparty/libvorbis/window.c [Initial build] Compiling ==> modules/vorbis/stub/register_types.cpp [Initial build] Compiling ==> modules/voxel/cube_tables.cpp [Initial build] Compiling ==> modules/voxel/register_types.cpp In file included from modules/voxel/register_types.cpp:5: modules/voxel/voxel_map.h:115:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (key = _blocks.next(key)) { ~~~~^~~~~~~~~~~~~~~~~~~ modules/voxel/voxel_map.h:115:14: note: place parentheses around the assignment to silence this warning while (key = _blocks.next(key)) { ^ ( ) modules/voxel/voxel_map.h:115:14: note: use '==' to turn this assignment into an equality comparison while (key = _blocks.next(key)) { ^ == In file included from modules/voxel/register_types.cpp:6: In file included from modules/voxel/voxel_terrain.h:8: In file included from modules/voxel/voxel_mesh_updater.h:10: modules/voxel/transvoxel/voxel_mesher_smooth.h:31:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions] const Vector3i PAD = Vector3i(1, 1, 1); ^ 2 warnings generated. [Initial build] Compiling ==> modules/voxel/voxel.cpp [Initial build] Compiling ==> modules/voxel/voxel_block.cpp [Initial build] Compiling ==> modules/voxel/voxel_box_mover.cpp In file included from modules/voxel/voxel_box_mover.cpp:1: In file included from modules/voxel/voxel_box_mover.h:4: In file included from modules/voxel/voxel_terrain.h:8: In file included from modules/voxel/voxel_mesh_updater.h:10: modules/voxel/transvoxel/voxel_mesher_smooth.h:31:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions] const Vector3i PAD = Vector3i(1, 1, 1); ^ In file included from modules/voxel/voxel_box_mover.cpp:2: modules/voxel/voxel_map.h:115:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (key = _blocks.next(key)) { ~~~~^~~~~~~~~~~~~~~~~~~ modules/voxel/voxel_map.h:115:14: note: place parentheses around the assignment to silence this warning while (key = _blocks.next(key)) { ^ ( ) modules/voxel/voxel_map.h:115:14: note: use '==' to turn this assignment into an equality comparison while (key = _blocks.next(key)) { ^ == 2 warnings generated. [Initial build] Compiling ==> modules/voxel/voxel_buffer.cpp [Initial build] Compiling ==> modules/voxel/voxel_library.cpp [Initial build] Compiling ==> modules/voxel/voxel_map.cpp In file included from modules/voxel/voxel_map.cpp:1: modules/voxel/voxel_map.h:115:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (key = _blocks.next(key)) { ~~~~^~~~~~~~~~~~~~~~~~~ modules/voxel/voxel_map.h:115:14: note: place parentheses around the assignment to silence this warning while (key = _blocks.next(key)) { ^ ( ) modules/voxel/voxel_map.h:115:14: note: use '==' to turn this assignment into an equality comparison while (key = _blocks.next(key)) { ^ == modules/voxel/voxel_map.cpp:162:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while (key = _blocks.next(key)) { ~~~~^~~~~~~~~~~~~~~~~~~ modules/voxel/voxel_map.cpp:162:13: note: place parentheses around the assignment to silence this warning while (key = _blocks.next(key)) { ^ ( ) modules/voxel/voxel_map.cpp:162:13: note: use '==' to turn this assignment into an equality comparison while (key = _blocks.next(key)) { ^ == 2 warnings generated. [Initial build] Compiling ==> modules/voxel/voxel_mesh_updater.cpp In file included from modules/voxel/voxel_mesh_updater.cpp:2: In file included from modules/voxel/voxel_mesh_updater.h:10: modules/voxel/transvoxel/voxel_mesher_smooth.h:31:21: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions] const Vector3i PAD = Vector3i(1, 1, 1); ^ In file included from modules/voxel/voxel_mesh_updater.cpp:3: modules/voxel/utility.h:5:10: fatal error: 'core/dvector.h' file not found #include <core/dvector.h> ^~~~~~~~~~~~~~~~ 1 warning and 1 error generated. scons: *** [modules/voxel/voxel_mesh_updater.osx.tools.64.o] Error 1 scons: building terminated because of errors.

Multithreaded and Vsync Significantly Degrade Performance

I've added user editability to my fps demo for voxelgame. I'm almost ready to submit it. However, I noticed an issue with updating the edited terrain.

WIth vsync turned on, my game runs at 60fps. Though 1-2 changes might be processed, the majority wait until the entire VoxelTerrain is done loading before making changes. This is about 20-30 seconds.

With vsync turned off, I could get anywhere between 40-200fps, yet even at the slower FPS, I can start editing the terrain the instant the game starts without delay. The terrain blocks are definitely still loading, but I can start digging into the terrain right away.

Is there any way to fix this?
Occurs with VoxelTerrain on blocky or smooth.

Edit: Also occurs on both my demo and yours, Zylann.

Edit 2:

Multithreaded mode and vsync on both and independently have a significant negative impact on the performance for both terrain generation and user editability.

* changed title for clarity

See this comment below for more tests.

Is it possible to add dynamic lights in large dynamic world?

Can we support a lot of moving lights in large dynamic world (like lights from torches, vehicles e.t.c.)?

Godot uses forward renderer, so it can`t handle a lot of dynamic lights. https://godotengine.org/article/godot-3-renderer-design-explained

1 Can we apply some optimizations (light blending e.t.c.?)
2 How to handle moving lights passing through dynamic objects? godotengine/godot#26838

Other solutions:

  • Change renderer pipepline in godot to deferred shading.

The reason we chose deferred shading instead of deferred lighting or forward rendering was mainly due to the large number of dynamic lights we had to support in-game and also because the amount of geometry rendered which prohibited us from rendering it more than once. From https://interplayoflight.wordpress.com/2015/04/08/the-rendering-technology-of-skysaga-infinite-isles/

It it possible to modify godot`s pipepline?

Specialize terrain nodes

Currently, there are two terrain types:

  • VoxelTerrain: paged terrain where all blocks are 16x16x16 no matter the distance. Supports both blocky and smooth voxels, although some special cases required to introduce a bit of complexity.

  • VoxelLodTerrain: paged terrain managing multiple layers of blocks of varying levels of detail. It works only with smooth voxels, and blocky ones would not only add complexity but also not look good anyways.

Given the use cases for each type, I am tempted to change them:

  • VoxelTerrain => VoxelTerrainBlocky: drop support for smooth voxels, specialize into blocky ones, eliminate special cases.

  • VoxelLodTerrain => VoxelTerrainSmooth: keep supporting smooth only, and do it well.

This also has the advantage that it's easier to expose settings in the inspector, as they can be wildly different between blocky and smooth.
One drawback is, VoxelLodTerrain currently doesn't support edition, mostly because I need to find a strategy to replicate edits on all LODs.


Edit: this may be part of a larger refactoring to come in the future. Main points being:

  • Introduction of VoxelServer so we can efficiently organize resource usage with many voxel nodes, not just one
  • Eventual specialization of the two current terrain nodes to simplify their use
  • Possible introduction of new nodes
  • Customizability of streaming behavior (paged or not, lodded or not) and exposition of network-friendly APIs
  • Renamings

(How these requirments will be implemented may vary from the final design)

mono support

Hi,

I attempted to use this with a mono enabled godot, however it broke on generating the glue code. Am I missing anything here? Should it work..?

I have compiled from godot git before, however I have not attempted to add a new module in. Thanks.

A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel Rendering

Maybe useful: Very fast Ray-Box Intersection Algorithm

it is suitable for fully dynamic scenes in which every voxel potentially changes every frame. These improvements can enable a dramatic increase in dynamism, view distance, and scene density for visualization applications and voxel games such as LEGO® Worlds and Minecraft.

'A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel'
http://www.jcgt.org/published/0007/03/04/
http://www.jcgt.org/published/0007/03/04/supplement.zip
http://www.jcgt.org/published/0007/03/04/paper.pdf

A hybrid voxel rendering engine using 'A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel'
https://github.com/kosshishub/voxplat/

See also:
https://github.com/kosshishub/voxplat/blob/019f073a7d2387662e61ffbcc837cbb2d619f4e2/README.md
https://github.com/kosshishub/voxplat/blob/244070fd84bdc5468f4df4a62c11638836329442/resources/splat.frag.glsl
https://kosshi.net/projects.html
https://medium.com/p/41125138b525/responses/show
https://github.com/guillaumechereau/goxel/blob/42a7cbc638a0980b8574462a1702d533698cbf85/ext_src/yocto/yocto_bvh.h#L351
https://github.com/aras-p/ToyMeshPathTracer/blob/e74b743256ad11c5eb4be92a9dfe2badd6cb3d7d/source/scene.cpp#L37
https://medium.com/@bromanz/another-view-on-the-classic-ray-aabb-intersection-algorithm-for-bvh-traversal-41125138b525
https://forum.minetest.net/viewtopic.php?f=7&t=20835
https://news.ycombinator.com/item?id=18033635
https://github.com/simcop2387/voxelquest/blob/c3cddb3bd3cff21712a5e4b4841b344cd1727092/src/glsl/PointShader.c#L127
https://www.indiedb.com/games/voxel-quest/news/voxel-quest-how-does-it-work
https://www.reddit.com/r/gamedev/comments/22gbbc/how_the_tech_behind_voxel_quest_works/
https://www.moddb.com/news/voxel-quest-how-does-it-work
https://www.starandserpent.com/blog/a-ray-box-intersection-algorithm-and-efficient-dynamic-voxel-rendering/
https://github.com/meshula/awesome-voxel

Editable voxels

random stuff:

hey,
just found time to look at your code.
(I don't know if you remember but I also once did a voxel approach in gdscript and than was blown away by your results when you finished (or started... ;) ) your voxel module.)
I still really like it and probably will do a project with it one day ;)

actual topic:

I saw that u use the surface tool for the actual mesh generation.
how would editable voxels than be implemented? do you have to recreate the whole chunk? or can u find vertices inside a surface tool and change them? (delete replace...)
How does godot perform when using a huge amount of surface tools (for each voxel) I saw some discussions with reduz where he said that this should perform pretty well.
I didn't try that for now. but I know that in other engines you get a huge decrease in performance when splitting to multiple meshes... (although keeping the same vertex count)

Just am super curious if you already know how to implement it

Help understanding main blocky flow

Hello folks!

I'm trying to master the blocky creating flow, because I'll need to add some extra work on it in order to add light data. I think I've understand in general lines how it works, so to check I've build the following image (sorry for not following none UML). Can someone help me to check if is that so?

image

  • There are three threads: The main thread and two processor threads, one for the loader and another for updater (mesh);
  • First the VoxelTerrain calculate the current bounds of the viewer, then it separates into two bounds, the new bounds and the old bounds;
  • For the old bounds, just do the immediate unload of the blocks that are on it;
  • For the new bounds, request the load. By request I mean call VoxelDataLoader::push;
  • At this point, we have loaded and unloaded the necessary blocks, we just need to handle our responses;
  • Get block load responses using the VoxelDataLoader::pop and update the block stats to BLOCK_UPDATE_NOT_SENT;
  • If the block isn't empty, request update mesh by sending a request to VoxelMeshUpdater::push and set block stats to BLOCK_UPDATE_SEND;
  • Last, but not least, get mesh update responses and update meshes;

What you guys think?

Compile error on Ubuntu 18.04

Hello folks,

When trying to compile on Ubuntu 18.04, I got the following compile error with GCC 7.4.0:

modules/voxel/meshers/dmc/voxel_mesher_dmc.cpp: In member function 'virtual void VoxelMesherDMC::build(VoxelMesher::Output&, const VoxelBuffer&, int)':
modules/voxel/meshers/dmc/voxel_mesher_dmc.cpp:1469:15: error: no match for 'operator=' (operand types are 'VoxelMesherDMC::Stats' and '<brace-enclosed initializer list>')
  _stats = { 0 };

After changing this line of code on /modules/voxel/meshers/dmc/voxel_mesher_dmc.cpp(1469):

_stats = { 0 };

To:

_stats = {};

It worked fine.

Unnecessary double check of mesh.is_valid()?

Hello folks!

Just walking through the code, I saw the VoxelBlock::set_mesh implementation as follows:

void VoxelBlock::set_mesh(Ref<Mesh> mesh, Ref<World> world) {
// TODO Don't add mesh instance to the world if it's not visible.
// I suspect Godot is trying to include invisible mesh instances into the culling process,
// which is killing performance when LOD is used (i.e many meshes are in pool but hidden)
// This needs investigation.
VisualServer &vs = *VisualServer::get_singleton();
if (mesh.is_valid()) {
if (_mesh_instance.is_valid() == false) {
// Create instance if it doesn't exist
ERR_FAIL_COND(world.is_null());
_mesh_instance = vs.instance_create();
vs.instance_set_scenario(_mesh_instance, world->get_scenario());
}
vs.instance_set_base(_mesh_instance, mesh.is_valid() ? mesh->get_rid() : RID());
Transform local_transform(Basis(), _position_in_voxels.to_vec3());
vs.instance_set_transform(_mesh_instance, local_transform);
// TODO The day VoxelTerrain becomes a Spatial, this transform will need to be updatable separately
} else {
if (_mesh_instance.is_valid()) {
// Delete instance if it exists
vs.free(_mesh_instance);
_mesh_instance = RID();
}
}
_mesh = mesh;
++_mesh_update_count;
// if(_mesh_update_count > 1) {
// print_line(String("Block {0} was updated {1} times").format(varray(pos.to_vec3(), _mesh_update_count)));
// }
}

Just a minor question, but the ternary operator in the following statement is unnecessary, right?

vs.instance_set_base(_mesh_instance, mesh.is_valid() ? mesh->get_rid() : RID());

Since this block will be executed only if the mesh.is_valid(), so this statement can be simplified as follows?

		vs.instance_set_base(_mesh_instance, mesh->get_rid());

Or maybe the right one to be check would be _mesh instead of mesh?

Thanks!

Occasionally faces won't properly illuminate or work with Godot's triplanar mapping

Sometimes, some lower LODs have faces that are black when using a texture, or impossibly dark even with a white albedo color and the sun shining directly on it. I wonder if those faces have their normals reversed.

Present in master, though these pics are from the paged branch.

I've seen this a lot on the noise world and have even pointed it out in videos I've sent you. I thought it was my shader, because if triplanar map blending is too high, it will cause black sections. But no. This issue is there even when there's no triplanar mapping.

It's also not a lighting issue, or that the lower LODs have a mesh that is just causing more shadow.

Textured w/ triplannar mapping and very low blend (6). Shouldn't have black marks:

image

Blank SpatialMaterial. Sun is shining on both faces:

image

Bottom face has shifted to a new LOD. Shows how much light was there that did not reflect off the face in the picture above.

image

This is from master, sun shining on this pillar. Then I backed up to hit the right LOD from different angles, moving around it from left to right.:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.