Commit graph

1961 commits

Author SHA1 Message Date
LaShonda Hopper
5b50b362f1 [WL21389] WL21389 PR2: Representation of collision shapes need updating (details below).
This commit adds support for the polyhedrons and polygons sans
Torus and Quad which aren't currently supported within GeometryCache.

* Moves GeometryCache::_shapes from public to private scope
    * Nothing aside from the class should be directly altering this, only querying
    * Updated instances of direct referencing which looks to have been limited to prior
      testing of instancing and shapes.
* Adds an accessor function for ShapeData to GeometryCache
* Consolidates point list generation to helper function
    * GeometryCache::computeSimpleHullPointListForShape
* Moves GeometryCache::Shape to entity::Shape mapping to GeometryCache from
  RenderableShapeEntityItem
    * Adds conversion accessor to GeometryCache, GeometryCache::Shape getShapeForEntityShape
* Sets ShapeEntityItem::ShapeInfoCalculator callback committed earlier.
    * This helps circumvent the issue with library inclusion.  entity-render knows about
      entity; however, entity doesn't know about entity-renderer; however, GeometryCache
      data is needed within entity::ShapeEntityItem to compose the ShapeInfo point list data.
    * This callback is set up within Application::init of the Interface as it knows about
      both halves of the equation, and the callback needs to be setup prior to any entities
      collision data getting generated.
* Removes _type reset within ShapeInfo::setPointCollection
    * This should avoid any issues due to subversively setting the type or
      incorrectly setting the type as a tangential operation.
        * Audited instances of ShapeInfo::setPointCollection and all seemed to be
          calling the function immediately after having set the type via
          ShapeInfo::setParams
* Adds new ShapeType: SHAPE_TYPE_CIRCLE
    * This type is reserved for the circle which is now treated as a special
      type of Cylinder_Y with regard to collision as opposed to a simple hull.
    * Fixes the issue where jumping on a circle, at times, would
      result in the avatar sliding off towards an edge as if atop a
      squished cone.
* Also updates ShapeInfo::getType() to return ShapeType as opposed to int
    * Auditing calls showed that majority of places were comparing against ShapeType
    * ShapeType::_type is a ShapeType so returning the type explicitly
      is more consistent.
        * ShapeInfo file houses ShapeType enum so any file aware of ShapeInfo is aware of
          ShapeType enumeration.
* entity::Quad defaults to SHAPE_TYPE_ELLIPSOID
    * Like entity::Shape::Torus, entity::Shape::Quad is currently unsupported within
      GeometryCache::buildShapes.
    * Also it appears that a Quad shape can't be created within world via the creation menu.
        * There's no explicit option at present to create one.
        * Trying subvert the Cube/Box creation option to generate one results in an enforced
          stubby box as opposed to a quad.
    * Given the aforementioned points, entity::Shape::Quad will default to
      SHAPE_TYPE_ELLIPSOID as opposed to SHAPE_TYPE_BOX.
        * Added Todo regarding the shape being unsupported along with a notation to create
          a special ShapeType, SHAPE_TYPE_QUAD, for it should it be added in the future.
* Adds some comments and has some minor clean up.

Reviewed-by: Leander Hasty <leander@1stplayable.com>

Changes Committed:
	modified:   interface/src/Application.cpp
	modified:   interface/src/Util.cpp
	modified:   interface/src/Util.h
	modified:   libraries/entities-renderer/src/RenderableShapeEntityItem.cpp
	modified:   libraries/entities/src/ShapeEntityItem.cpp
	modified:   libraries/entities/src/ShapeEntityItem.h
	modified:   libraries/physics/src/ShapeFactory.cpp
	modified:   libraries/render-utils/src/GeometryCache.cpp
	modified:   libraries/render-utils/src/GeometryCache.h
	modified:   libraries/shared/src/ShapeInfo.cpp
	modified:   libraries/shared/src/ShapeInfo.h
	modified:   tests/gpu-test/src/TestInstancedShapes.cpp
2017-10-24 14:16:17 -04:00
Bradley Austin Davis
4f5851f420 Reducing needless render updates 2017-10-23 15:31:25 -07:00
Brad Hefta-Gaub
87294b8e67 Merge pull request #11638 from ZappoMan/fixWireframe
fix the rendering of wireframe for model entities with bad model URLs
2017-10-20 14:29:01 -07:00
Brad Hefta-Gaub
d6ad389dab Merge pull request #11611 from AndrewMeadows/faster-update-renderables
Faster renderables update
2017-10-20 13:43:08 -07:00
ZappoMan
ef0ff96a44 fix the rendering of wireframe for model entities with bad model URLs 2017-10-20 11:46:28 -07:00
Andrew Meadows
c79bf3bc04 cleanup WANT_DETAILED_PROFILING 2017-10-19 14:31:50 -07:00
Daniela
832e30ad1c Edited Packet headers. 2017-10-19 19:53:47 +01:00
Nissim
a641d6de66 Variable rename. 2017-10-17 09:18:29 -07:00
Andrew Meadows
339edc67c8 ifdef out more per-frame-per-entity profiling 2017-10-16 17:27:53 -07:00
Andrew Meadows
1f09c10fb1 comment out more profiling stuff 2017-10-16 16:43:16 -07:00
Andrew Meadows
102a1cb36b ifdef out detailed profiling 2017-10-16 16:02:11 -07:00
Andrew Meadows
fb1c075a12 fix animating entities 2017-10-16 15:55:25 -07:00
Andrew Meadows
23bb8608b1 minor optimizations in updateModelBounds() 2017-10-16 11:52:30 -07:00
Andrew Meadows
e109101acc update profiling timers 2017-10-16 11:52:30 -07:00
Nissim
0a5302ce25 Merge branch 'master' of https://github.com/highfidelity/hifi 2017-10-16 11:01:13 -07:00
samcake
918e13b2fc fixing the zone entity not rendering when created or when avatar appears in one 2017-10-13 15:03:23 -07:00
Nissim Hadar
afb8b2d8e7 Merge branch 'master' into hazeZone 2017-10-13 13:40:06 -07:00
Nissim Hadar
9c9dfc7211 Replace light blend with glare. 2017-10-13 13:36:46 -07:00
Nissim Hadar
c76229934c Changed blend-in colour and blend-out colour to colour and glare colour 2017-10-13 12:21:00 -07:00
Nissim Hadar
5bfbaf4860 Renamed HazeMode to ComponentMode. 2017-10-13 11:24:56 -07:00
Nissim Hadar
30fdf9d08e Merge branch 'master' into hazeZone 2017-10-11 22:12:52 -07:00
Nissim Hadar
a21995db24 Added checkbox for altitude effect. 2017-10-11 22:10:58 -07:00
Nissim Hadar
96fd3123e8 Changed haze altitude to ceiling. 2017-10-11 20:36:24 -07:00
Nissim Hadar
832f9fb6e3 Renamed HAZE_MODE_RANGE_ONLY to HAZE_MODE_ENABLED. 2017-10-11 19:10:51 -07:00
Nissim Hadar
ea6b9ed28e Removed ...ALTITUDE_MODE from combo. 2017-10-11 18:58:59 -07:00
Anthony J. Thibault
0a943fbe7b Crash/Deadlock fix: Web3DOverlay could be destroyed on wrong thread.
When script calls Entities.getChildrenIDs*() it is possible to deadlock the main thread, and also invoke
the destructor of Entities and Overlays, which is very NOT thread safe.

The fix is to use a pattern already in use in several places in our codebase.
Use the custom deleter parameter of std::shared_ptr to call deleteLater() instead of destroying the object in place.
This allows any thread to use shared_ptrs of SpatiallyNestables without fear.
2017-10-11 17:32:34 -07:00
Atlante45
6dd49f5c32 Merge branch 'stable' of https://github.com/highfidelity/hifi into new-master 2017-10-10 16:53:34 -07:00
Daniela
a46ef56af9 Merge with hifi:master. Packet Headers version were increased. 2017-10-10 17:26:33 +01:00
Nissim Hadar
c9be5ea100 Merge branch 'master' of https://github.com/highfidelity/hifi into hazeZone 2017-10-09 18:01:48 -07:00
Nissim Hadar
71f567f15a Merge branch 'master' into hazeZone 2017-10-09 17:28:10 -07:00
Nissim Hadar
7d5a887f43 Refactoring. 2017-10-09 17:25:19 -07:00
SamGondelman
ee02fa9a91 model asks for renderUpdate if animating
(cherry picked from commit 873ae9b9d6)
2017-10-09 13:55:48 -07:00
SamGondelman
873ae9b9d6 model asks for renderUpdate if animating 2017-10-09 13:36:38 -07:00
Bradley Austin Davis
c92588685b Merge pull request #11533 from SamGondelman/modelMaster
Fix model loading for real this time
2017-10-08 10:23:13 -07:00
Nissim Hadar
e02876f1ea Zone position/direction sent to haze uniform. 2017-10-06 17:24:20 -07:00
Nissim Hadar
320c888ce4 Added checkbox to allow separate control of keylight attenuation. 2017-10-05 20:31:45 -07:00
Nissim Hadar
3afab3c1d3 Keylight attenuation implemented. 2017-10-05 18:25:02 -07:00
Nissim Hadar
414cae8df7 Implemented haze colours. 2017-10-05 13:29:32 -07:00
SamGondelman
a6b7578c3c start fixing asynch issue, fixes model loading! 2017-10-05 12:30:00 -07:00
Nissim Hadar
794cb961d5 Merge branch 'master' into hazeZone 2017-10-04 23:03:59 -07:00
Nissim Hadar
ad03301df8 WIP - implementing range+altitude mode. 2017-10-04 23:03:21 -07:00
Nissim Hadar
8b72e3044a WIP - implementing range+altitude mode. 2017-10-04 22:26:53 -07:00
Nissim Hadar
6dcd8b7b57 Haze Range works. 2017-10-04 21:47:20 -07:00
SamGondelman
3a6e84e681 trying to fix model issue 2017-10-04 17:26:12 -07:00
SamGondelman
215193ad90 try to improve performance
(cherry picked from commit a5f5f9fc5d)
2017-10-04 13:50:35 -07:00
SamGondelman
a5f5f9fc5d try to improve performance 2017-10-04 12:05:13 -07:00
Nissim Hadar
2ce86ebfae WIP - working on byte order in server messages. 2017-10-04 11:56:35 -07:00
Nissim Hadar
c1f4735468 Replaced HazeMode with uint8_t in transport protocol. 2017-10-03 19:39:34 -07:00
Nissim Hadar
48e5b9d1bc Haze enable/disable from UI works. 2017-10-03 17:42:04 -07:00
Andrew Meadows
46e809bbb2 use a better variable name 2017-10-03 12:35:03 -07:00