Commit graph

406 commits

Author SHA1 Message Date
Carter Anderson
71d091e10c entities with renderable.is_instanced are now removed from normal rendering 2020-03-20 16:58:21 -07:00
Carter Anderson
cbba656f16 replace appbuilder::new() with app::build() 2020-03-20 16:35:19 -07:00
Carter Anderson
43e69484ba migrate entity render resources to RenderResourceAssignments 2020-03-20 14:17:50 -07:00
Carter Anderson
9881f64715 cargo fmt 2020-03-20 12:47:33 -07:00
Carter Anderson
ae72c2cdb0 Refactor and integrate AssetBatcher. Add AssignedBatchesDrawTarget shim 2020-03-19 17:57:07 -07:00
Carter Anderson
99983b40a5 AssetBatcher 2020-03-19 13:21:55 -07:00
Carter Anderson
1e1980bf4d support tags in entity archetypes 2020-03-18 16:06:33 -07:00
Carter Anderson
04590de678 separate albedo color and make it required
I worked really hard to make ColorSource work, but sadly we need color to be instanceable and making it optional would add too much complexity. Maybe at some point in the future we can add it back. On the plus side, albedo color now modulates the albedo texture
2020-03-17 22:02:01 -07:00
Carter Anderson
d9663d740b AsUniforms provide VertexBufferDescriptor. Initial macro work 2020-03-17 18:25:27 -07:00
Carter Anderson
28fb0fdfc8 Reflect Vertex Buffer Attributes
Must follow VertexBufferDescriptorName_AttributeName format

I_VertexBufferDescriptorName_AttributeName indicates that an attribute is instanced

Currently all attributes must be defined in shaders or offsets will be incorrect.
2020-03-17 13:20:54 -07:00
Carter Anderson
62d1e710a5 rename vertex_buffer to instanceable 2020-03-16 12:15:51 -07:00
Carter Anderson
0ba48ed83a use dynamic uniforms by default for Handle<T> 2020-03-16 01:49:31 -07:00
Carter Anderson
5d99f3a7e8 Add Handle<T> support to uniform resource provider. Use Handle<StandardMaterial> instead of StandardMaterial 2020-03-16 00:45:28 -07:00
Carter Anderson
1332630fa3 tweaks 2020-03-15 01:12:56 -07:00
Carter Anderson
4d92ef0119 zero copy uniform bytes 2020-03-14 18:32:33 -07:00
Carter Anderson
63f40589e3 begin instancing work 2020-03-14 12:58:22 -07:00
Carter Anderson
56e79d5225 reorganize texture and mesh 2020-03-14 12:56:37 -07:00
Carter Anderson
0c3e83452d remove empty buffer warning because its too noisey 2020-03-11 18:19:02 -07:00
Carter Anderson
ad654a3c25 add fps printer system to diagnostics mod 2020-03-11 01:44:46 -07:00
Carter Anderson
41e15a2d90 make wgpu renderer optional 2020-03-10 22:20:49 -07:00
Carter Anderson
64b897016c swap out remaining wgpu references 2020-03-10 21:57:57 -07:00
Carter Anderson
7342f96174 named pipelines (makes custom shaders easier) 2020-03-10 02:46:27 -07:00
Carter Anderson
fb4752532b rename pipelinebuilder.build() to finish() 2020-03-10 02:16:01 -07:00
Carter Anderson
cfaee577e7 move bind type 2020-03-10 02:10:44 -07:00
Carter Anderson
d08b243317 cargo fmt 2020-03-10 01:52:28 -07:00
Carter Anderson
4eaf730b8a add default draw target impl 2020-03-10 01:51:59 -07:00
Carter Anderson
1ac33b1477 add default resource provider impls 2020-03-10 01:51:06 -07:00
Carter Anderson
aca17f15b7 start moving away from wgpu types 2020-03-10 00:53:07 -07:00
Carter Anderson
99cdf56e7d add Color type 2020-03-09 23:43:40 -07:00
Carter Anderson
aa09e93980 reorganize render modules 2020-03-09 23:08:09 -07:00
Carter Anderson
440d883322 use static dispatch in add_resource_provider 2020-03-09 12:07:16 -07:00
Carter Anderson
7d3f271cfa fix resources name 2020-03-09 11:56:45 -07:00
Carter Anderson
fc5d8061d5 cargo fmt 2020-03-09 02:08:44 -07:00
Carter Anderson
e4550aaab2 tweak add_children 2020-03-09 02:08:27 -07:00
Carter Anderson
8eec5653b6 rename add_archetype to add_entity 2020-03-09 02:02:17 -07:00
Carter Anderson
a790332505 better parenting ergonomics in world builder 2020-03-09 02:00:59 -07:00
Carter Anderson
f6dd6a5ca9 fix parenting example, add missing transform components, add parenting to world builder 2020-03-09 01:31:15 -07:00
Carter Anderson
6ef1c099ff upgrade bevy_legion / re-apply fork 2020-03-09 00:47:58 -07:00
Carter Anderson
9355a53980 upgrade legion (breaks plugins) 2020-03-08 23:19:07 -07:00
Carter Anderson
c5f781b4e5 fix ui draw target 2020-03-08 20:27:07 -07:00
Carter Anderson
e0a1a83bc9 create entities as a separate step before starting a render pass 2020-03-08 20:06:59 -07:00
Carter Anderson
cadea8deb0 Break up wgpu renderer 2020-03-08 19:26:50 -07:00
Carter Anderson
85c880e754 upgrade wgpu. work around new wgpu lifetimes (this was painful) 2020-03-05 00:55:34 -08:00
Carter Anderson
8beed27c0e wgpu resources are separated 2020-03-05 00:55:34 -08:00
Carter Anderson
b64f51d10b try breaking out wgpu resources 2020-03-05 00:55:34 -08:00
Carter Anderson
baac7ff296 add png image loading and enable transparency 2020-03-02 20:33:46 -08:00
Carter Anderson
22be0b3366 reset uniform count on each update (oops) 2020-03-02 08:32:15 -08:00
Carter Anderson
ca563ea1b3 fix uniform providers with different field sets 2020-03-02 00:19:28 -08:00
Carter Anderson
5154320f70 textures work! 2020-03-01 17:48:37 -08:00
Carter Anderson
8d3026899d more texture work 2020-03-01 10:22:58 -08:00
Carter Anderson
9e5f4aeefc implement Copy for Handle 2020-02-23 23:50:44 -08:00
Carter Anderson
1a4bd98434 more texture work 2020-02-23 23:41:48 -08:00
Carter Anderson
79c900bc2d RenderResource ids 2020-02-23 21:13:03 -08:00
Carter Anderson
f84e71d051 cargo fmt 2020-02-22 15:02:01 -08:00
Carter Anderson
7eb99f3eb5 finish uniform names refactor 2020-02-22 15:01:11 -08:00
Carter Anderson
ba1f48f743 start working out field bind type info 2020-02-22 12:42:40 -08:00
Carter Anderson
65284fcacb more work on texture bindings 2020-02-21 00:15:24 -08:00
Carter Anderson
fb61204d53 start working out how AsUNiforms works with textures 2020-02-20 21:52:45 -08:00
Carter Anderson
4eaae0f815 add texture and sampler shader reflection 2020-02-19 00:24:59 -08:00
Carter Anderson
2f1a0cb4a4 macros are now fully screaming snake 2020-02-18 22:59:33 -08:00
Carter Anderson
8a10c06ad5 add texture to frag shader. fix weird macro name collision bug 2020-02-18 20:26:02 -08:00
Carter Anderson
a1b9e3a7a5 add shader_def to albedo ColorSource and auto import trait in macro 2020-02-18 19:08:17 -08:00
Carter Anderson
b809b22589 add ColorSource and remove test macro from StandardMaterial 2020-02-18 09:16:34 -08:00
Carter Anderson
f820e4207c add macro example to custom_shader 2020-02-18 09:06:24 -08:00
Carter Anderson
e0e0e41c33 Add "standard config" to pipeline builder 2020-02-17 20:43:50 -08:00
Carter Anderson
ad7acb111a fix custom_shader example 2020-02-17 20:23:00 -08:00
Carter Anderson
6cf981c610 use full path in macro references 2020-02-17 19:53:48 -08:00
Carter Anderson
a76b40bbb4 Fix pipeline name 2020-02-17 19:15:28 -08:00
Carter Anderson
57f798c0bd cleanup 2020-02-17 19:06:12 -08:00
Carter Anderson
6f376b5f3f remove old render graph 2020-02-17 18:36:31 -08:00
Carter Anderson
acebeb924c shader reflection for dynamic uniforms 2020-02-17 16:33:46 -08:00
Carter Anderson
2fe9710c04 Shader reflection works for everything but dynamic uniforms 2020-02-17 14:12:10 -08:00
Carter Anderson
c29a6f7dd2 more shader reflection 2020-02-16 20:35:44 -08:00
Carter Anderson
8698dcea25 start work on shader reflection 2020-02-16 12:12:55 -08:00
Carter Anderson
c208945833 add assigned meshes render target
dynamic compiling w/ entity-specifc macros works!
2020-02-15 22:17:24 -08:00
Carter Anderson
56e5414b63 only update pipelines when macros change. better handle debug print 2020-02-15 19:00:30 -08:00
Carter Anderson
26588d0c41 make pipelines cloneable and draw_target a part of render_graph 2020-02-15 17:08:46 -08:00
Carter Anderson
4de039eb71 Make PipelineDescriptor an Asset that references Handle<Shader> 2020-02-15 16:28:17 -08:00
Carter Anderson
478d475219 more shader assignment work 2020-02-15 13:58:40 -08:00
Carter Anderson
e38d3be0e3 move wgpu shader code out of Shader 2020-02-13 09:17:18 -08:00
Carter Anderson
7759fdefac collect uniform shader_defs in preparation for on-demand shader compiling 2020-02-12 17:58:58 -08:00
Carter Anderson
edf57c0dd3 rename entitybuilder to worldbuilder 2020-02-11 19:39:10 -08:00
Carter Anderson
649e1b113f add world.insert passthrough to entitybuilder 2020-02-11 19:37:48 -08:00
Carter Anderson
f24a274a2a add renderable to render related queries 2020-02-11 19:09:05 -08:00
Carter Anderson
7cdc2351ba add default to MeshEntity 2020-02-11 18:29:39 -08:00
Carter Anderson
eedec80e89 add shader def fields / proc macro 2020-02-10 19:26:04 -08:00
Carter Anderson
4a12d16307 add uniform field attribute 2020-02-09 21:41:51 -08:00
Carter Anderson
c1bac8869e move uniforms around 2020-02-09 18:09:54 -08:00
Carter Anderson
5b48de96db Add Uniforms proc macro 2020-02-09 18:04:18 -08:00
Carter Anderson
a721f3595d rustfmt: use field init shorthand 2020-02-09 11:43:45 -08:00
Carter Anderson
76d5f6057c add rustfmt.toml and set merge_imports to true 2020-02-09 11:42:26 -08:00
Carter Anderson
5306fa36fa break up shader mod 2020-02-08 17:17:07 -08:00
Carter Anderson
428bb985c4 move mesh draw target to draw target folder 2020-02-08 15:42:07 -08:00
Carter Anderson
ebcb925d6f remove broken import 2020-02-08 15:31:38 -08:00
Carter Anderson
c604843b54 move uniform resource provider to resource provider folder 2020-02-08 15:07:57 -08:00
Carter Anderson
8f1c9e9333 remove super 2020-02-07 23:18:53 -08:00
Carter Anderson
3b0b40a79d cargo fmt 2020-02-07 23:17:51 -08:00
Carter Anderson
f68909ac00 reorganize 2020-02-07 23:15:35 -08:00
Carter Anderson
88ecc9ed43 port ui over to new render graph 2020-02-07 22:42:30 -08:00
Carter Anderson
be1a878943 fix forward flat depth 2020-02-06 08:56:44 -08:00
Carter Anderson
aab7034e99 FrameTexture resource providers 2020-02-05 18:59:09 -08:00
Carter Anderson
8c831845f9 initial texture support 2020-02-05 17:50:56 -08:00
Carter Anderson
6d0661d299 fix lights 2020-02-05 11:02:53 -08:00
Carter Anderson
489580f688 port forward lighting and add struct + array uniforms 2020-02-05 09:59:36 -08:00
Carter Anderson
380e59ee23 begin porting over lighting 2020-02-04 23:14:13 -08:00
Carter Anderson
48e8967acc use staging buffer and add command encoder for resize events 2020-02-04 22:07:02 -08:00
Carter Anderson
c3a388b1b9 add some perf notes 2020-02-04 18:48:42 -08:00
Carter Anderson
b32c80ceba add todo 2020-02-04 09:41:05 -08:00
Carter Anderson
dff18f78db slightly optimize UniformResourceProvider 2020-02-04 09:39:23 -08:00
Carter Anderson
14efda15bf remember! 2020-02-04 00:27:34 -08:00
Carter Anderson
7c2eb63a47 improve performance dynamic uniforms 2020-02-04 00:06:17 -08:00
Carter Anderson
c4b10ea4f7 Continue moving uniform buffers to ResourceProviders 2020-02-03 22:13:13 -08:00
Carter Anderson
cd1fb92a7a cache bind group hashes 2020-01-28 01:53:28 -08:00
Carter Anderson
0eb6c6fa74 dynamic uniform buffer info 2020-01-28 00:36:51 -08:00
Carter Anderson
6ba659049d cleanup 2020-01-27 19:36:06 -08:00
Carter Anderson
4675996e4f remove unneeded uniform data copy 2020-01-27 19:35:54 -08:00
Carter Anderson
0b49557237 cleanup 2020-01-27 19:07:05 -08:00
Carter Anderson
be2a3659c7 dynamic uniforms now actually work! 2020-01-27 01:40:53 -08:00
Carter Anderson
36568d91d2 use buffers + dynamic offsets for shaderuniforms 2020-01-27 01:13:38 -08:00
Carter Anderson
d76b2b032e entity uniforms kind of work in the new render graph
but only the last entity because they all use the same buffer
2020-01-26 21:44:01 -08:00
Carter Anderson
5ca84dbde0 add new materials to example 2020-01-26 00:24:50 -08:00
Carter Anderson
a2d0d937e0 render graph bind groups 2020-01-25 16:33:26 -08:00
Carter Anderson
bcd7dae0ec more renderer work 2020-01-23 23:39:56 -08:00
Carter Anderson
7b89531268 add resource providers to render_graph 2020-01-23 01:06:37 -08:00
Carter Anderson
2226292ce0 more graph work 2020-01-23 00:31:56 -08:00
Carter Anderson
9e0d29d27e prep flat pipeline 2020-01-21 03:15:28 -08:00
Carter Anderson
5975289f4c bind group data model 2020-01-20 23:05:53 -08:00
Carter Anderson
129a9747bb add dynamic plugin loading 2020-01-20 20:10:40 -08:00
Carter Anderson
e8dfc0081b supress warnings 2020-01-20 02:03:05 -08:00
Carter Anderson
d7bd49694b add resize event to new renderer 2020-01-20 02:02:53 -08:00
Carter Anderson
79bb83732f more graph work 2020-01-20 00:57:54 -08:00
Carter Anderson
54005fcdd0 finish wiring up new renderer / render_graph 2020-01-19 23:04:27 -08:00
Carter Anderson
e4d42c29a9 incomplete plug in 2020-01-19 13:24:01 -08:00
Carter Anderson
b0df491559 make legacy rendergraph optional (and off by default) 2020-01-19 12:43:18 -08:00
Carter Anderson
3783deed07 rename object3d to mesh 2020-01-19 02:10:29 -08:00
Carter Anderson
ec4ca5559f EntityArchetype proc macro 2020-01-19 02:02:12 -08:00
Carter Anderson
48cf0190ad add comments about future entity archetype plans 2020-01-18 15:39:03 -08:00
Carter Anderson
e0753c8ace entity archetypes
(for organization and compile time speedups)
2020-01-18 15:36:24 -08:00
Carter Anderson
7a386b8b46 more render_graph work 2020-01-18 14:09:53 -08:00
Carter Anderson
d9bd2d4f15 pipeline builder 2020-01-17 18:54:05 -08:00
Carter Anderson
3a674394b9 add immutable versions of run_on_hierarchy to save allocations 2020-01-17 01:29:01 -08:00
Carter Anderson
e649d4f6e1 initial render graph v2 work 2020-01-17 00:46:40 -08:00
Carter Anderson
435357ee86 start working on render_graph v2 2020-01-15 10:28:27 -08:00
Carter Anderson
724ad16c95 remove comments 2020-01-15 01:03:33 -08:00
Carter Anderson
50722089ef replace glsl_to_spirv with shaderc 2020-01-15 00:51:32 -08:00
Carter Anderson
35705dfad2 move render_graph and prevent panic when there are no passes 2020-01-14 22:40:52 -08:00
Carter Anderson
7037c8c494 cargo fmt 2020-01-14 22:23:00 -08:00
Carter Anderson
68676bf6fa add initial serialization 2020-01-14 22:19:28 -08:00
Carter Anderson
0e72f073e1 move swap_chain and device initialization to render_graph 2020-01-14 18:57:10 -08:00
Carter Anderson
e1c1da027b move app to its own namespace 2020-01-14 12:53:56 -08:00
Carter Anderson
5f6bad2dc8 add system stages to app builder 2020-01-14 12:37:01 -08:00
Carter Anderson
27eaaead30 make time optional 2020-01-14 12:04:55 -08:00
Carter Anderson
2da6ea6393 set msaa to 4 to be kinder to my laptop 2020-01-14 11:53:57 -08:00
Carter Anderson
3853e0f1c9 remove legion_transform_bundle from lib.rs 2020-01-13 19:23:28 -08:00
Carter Anderson
5433ba7ea1 add prelude 2020-01-13 19:20:58 -08:00
Carter Anderson
32f196c7c2 move mesh and texture to asset mod 2020-01-13 18:59:30 -08:00
Carter Anderson
c867c021c9 add texture types 2020-01-13 18:06:06 -08:00
Carter Anderson
7a6c938409 add uvs to vertex layout 2020-01-13 17:35:30 -08:00
Carter Anderson
5ab026d943 update alpha dst_factor 2020-01-13 02:14:10 -08:00
Carter Anderson
019cad9e04 add msaa 2020-01-13 02:11:30 -08:00
Carter Anderson
a798cf3346 add alpha to ui pipeline 2020-01-13 01:32:04 -08:00
Carter Anderson
ae325846ff Node tree structure 2020-01-12 22:18:17 -08:00
Carter Anderson
875b7492c8 rename ui_update_system 2020-01-12 18:00:58 -08:00
Carter Anderson
6da891be29 ui node system 2020-01-12 16:51:21 -08:00
Carter Anderson
7f0f2d0515 Add anchor data 2020-01-11 17:33:44 -08:00
Carter Anderson
9c3c92f39a cargo fmt 2020-01-11 15:21:31 -08:00
Carter Anderson
133cbe7846 upgrade wgpu and winit 2020-01-11 14:16:47 -08:00
Carter Anderson
e1fb86ef8e support instancing multiple meshes 2020-01-11 13:14:26 -08:00
Carter Anderson
4d903df33c simplify AssetStorage and Handles 2020-01-11 12:32:38 -08:00
Carter Anderson
41722830bd remove some todos 2020-01-11 11:57:16 -08:00
Carter Anderson
2506449097 use creat_quad in create_plane 2020-01-11 11:51:46 -08:00
Carter Anderson
13eea44bce remove Mesh2D for now 2020-01-11 11:33:49 -08:00
Carter Anderson
a9635b2c3d move vertex to render mod 2020-01-11 11:29:57 -08:00
Carter Anderson
151675a5ef upgrade legion. refactor system and world construction 2020-01-11 03:31:36 -08:00
Carter Anderson
9f7e313dc4 rustfmt crate 2020-01-11 02:11:27 -08:00
Carter Anderson
fdbe42dd7d app_builder: add world and scheduler setters 2020-01-11 01:51:20 -08:00
Carter Anderson
55c50f7185 refactor app startup. AppBuilder. clean up examples 2020-01-11 01:46:51 -08:00
Carter Anderson
aeeb85b7b0 batched rect rendering 2020-01-10 22:42:54 -08:00
Carter Anderson
eb1233d9f0 initial ui pass 2020-01-08 19:17:11 -08:00
Carter Anderson
edd0bca622 rename forward bind group 2020-01-08 09:12:54 -08:00
Carter Anderson
62364660de local -> material bind group layout 2020-01-08 09:07:49 -08:00
Carter Anderson
86a467f0f3 initial gltf example 2020-01-07 23:03:09 -08:00
Carter Anderson
f27942e961 port shadow pipeline. clean up 2020-01-07 22:35:07 -08:00
Carter Anderson
42236cfe57 new shadow pass. pipeline assignments 2020-01-05 21:38:43 -06:00
Carter Anderson
aa16023f41 port forward-instanced to RenderGraph 2020-01-01 14:24:45 -06:00
Carter Anderson
cb6de5b2bf initial RenderGraph 2020-01-01 13:53:44 -06:00
Carter Anderson
7bfafc22bc initial instancing support 2019-12-27 15:35:07 -06:00
Carter Anderson
6a819a1884 render resources refactor and normal forward rendering 2019-12-23 18:13:05 -06:00
Carter Anderson
aa2f7e9789 Use floats for vertex values 2019-12-09 23:12:50 -08:00
Carter Anderson
42fd25cfd9 move forward uniform setup to forward pass 2019-12-05 09:29:26 -08:00
Carter Anderson
03c1ec3405 we glam now 2019-12-04 00:11:14 -08:00
Carter Anderson
072346bb94 fix variable name 2019-12-03 22:12:33 -08:00
Carter Anderson
25b7dad1c2 update example 2019-12-03 19:01:48 -08:00
Carter Anderson
0e0eb97430 cleanup 2019-12-03 09:01:15 -08:00
Carter Anderson
816d0c9bdd wander spawner 2019-12-03 00:30:30 -08:00
Carter Anderson
21ce87ba45 fix camera projection 2019-12-02 15:51:24 -08:00
Carter Anderson
2a27cacba8 lights and cameras data driven. setup moved to relevant passes 2019-12-02 15:19:56 -08:00
Carter Anderson
df5c74a0ea material constructor 2019-12-02 11:05:35 -08:00
Carter Anderson
6b937d5df4 use more harmonious colors in sample 2019-12-02 10:54:42 -08:00
Carter Anderson
3922c76efe fix asset loading. no more temp! 2019-12-02 10:48:08 -08:00
Carter Anderson
a96f3cfda5 asset loading, hierarchies, more refactoring 2019-12-02 01:31:07 -08:00
Carter Anderson
188d355d10 render refactors. ecs integration 2019-12-01 20:03:04 -08:00
Carter Anderson
07c0fa0704 refactor pipelines 2019-12-01 01:16:15 -08:00
Carter Anderson
e204538ad7 transition math to nalgebra and add tiny-town. 2019-11-30 21:21:45 -08:00
Carter Anderson
cd60778d46 use wgpu example as base 2019-11-30 17:42:27 -08:00
Carter Anderson
669849c454 initial commit 2019-11-12 19:36:02 -08:00