From abed7153bb69bd0d8ff5b6867b3df6ea5a423b42 Mon Sep 17 00:00:00 2001 From: Philip Degarmo Date: Sat, 1 May 2021 12:19:10 -0700 Subject: [PATCH 1/6] N21: Rafx --- content/news/021/index.md | 24 ++++++++++++++++++++++++ content/news/021/rafx-webgl1-demo.png | Bin 0 -> 90571 bytes 2 files changed, 24 insertions(+) create mode 100644 content/news/021/rafx-webgl1-demo.png diff --git a/content/news/021/index.md b/content/news/021/index.md index 3d6fee1f2..5d9d29517 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -228,6 +228,30 @@ GUI. [KindNES]: https://github.com/henryksloan/kind-nes/releases/tag/v0.9.1-beta [@henryksloan]: https://github.com/henryksloan +### [rafx] + +![rafx-webgl-demo](rafx-webgl1-demo.png) +_Rafx WebGL 1.0 support, [click for live demo][rafx-webgl-demo]!_ + +Rafx is a multi-backend renderer that optionally integrates with the +[distill][rafx-distill] asset pipeline. This month, we added frustum +culling and a new OpenGL ES 2.0/WebGL 1.0 backend. + +[@dvd] revived the `rafx-visibility` crate and implemented frustum culling. +This vastly reduces the draw call count in demo scenes. This also included +a clean-up of the demo to improve consistency between implementation of the +various rendering features (i.e. meshes, text etc.) + +[@aclysma] implemented a new OpenGL ES 2.0 backend. By supporting ES2, rafx +can now be used with almost any mobile device or within any browser ([~98% +coverage][rafx-webgl-caniuse].) + +[rafx]: https://github.com/aclysma/rafx +[rafx-webgl-demo]: https://aclysma.github.io/rafx/demo-web/index.html +[rafx-distill]: https://github.com/amethyst/distill +[rafx-webgl-caniuse]: https://caniuse.com/?search=webgl +[@aclysma]: https://github.com/aclysma +[@dvd]: https://github.com/DavidVonDerau ## Popular Workgroup Issues in Github diff --git a/content/news/021/rafx-webgl1-demo.png b/content/news/021/rafx-webgl1-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..399d630eab01cfd75a7136b6d1b70865223221db GIT binary patch literal 90571 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

e7f(NXf!jQ!qKEbi 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 z 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 LDxWKB=KKEvyxyvl literal 0 HcmV?d00001 From 4e70a3240b4b874f2acb163b06be46badfb65a79 Mon Sep 17 00:00:00 2001 From: Philip Degarmo Date: Sat, 1 May 2021 17:23:22 -0700 Subject: [PATCH 2/6] Update phrasing --- content/news/021/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/news/021/index.md b/content/news/021/index.md index 5d9d29517..4e5c4d215 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -238,9 +238,10 @@ Rafx is a multi-backend renderer that optionally integrates with the culling and a new OpenGL ES 2.0/WebGL 1.0 backend. [@dvd] revived the `rafx-visibility` crate and implemented frustum culling. -This vastly reduces the draw call count in demo scenes. This also included -a clean-up of the demo to improve consistency between implementation of the -various rendering features (i.e. meshes, text etc.) +Frustum culling greatly reduces draw call counts, improving frame rate +in certain scenes. The changes also improve consistency between various +rendering feature implementations (i.e. meshes, text etc.) and avoid running +the extract-prepare-submit pipeline on entities that are not visible. [@aclysma] implemented a new OpenGL ES 2.0 backend. By supporting ES2, rafx can now be used with almost any mobile device or within any browser ([~98% From 625bc81ac8b8ff93c2743fad12c468fb1e8881a2 Mon Sep 17 00:00:00 2001 From: Philip Degarmo Date: Sun, 2 May 2021 08:27:24 -0700 Subject: [PATCH 3/6] Fix link --- content/news/021/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/news/021/index.md b/content/news/021/index.md index 4e5c4d215..5e1eec494 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -230,7 +230,7 @@ GUI. [@henryksloan]: https://github.com/henryksloan ### [rafx] -![rafx-webgl-demo](rafx-webgl1-demo.png) +[![Rafx WebGL 1.0 Demo](rafx-webgl1-demo.png)][rafx-webgl-demo] _Rafx WebGL 1.0 support, [click for live demo][rafx-webgl-demo]!_ Rafx is a multi-backend renderer that optionally integrates with the From 86e45b942ec83acc5e06261fc5b1290a26f86b22 Mon Sep 17 00:00:00 2001 From: Philip Degarmo Date: Sun, 2 May 2021 08:27:56 -0700 Subject: [PATCH 4/6] whitespace --- content/news/021/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/news/021/index.md b/content/news/021/index.md index 5e1eec494..b3d28e472 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -228,6 +228,7 @@ GUI. [KindNES]: https://github.com/henryksloan/kind-nes/releases/tag/v0.9.1-beta [@henryksloan]: https://github.com/henryksloan + ### [rafx] [![Rafx WebGL 1.0 Demo](rafx-webgl1-demo.png)][rafx-webgl-demo] From 9bbd14e7741aa43c9a8c9cbebe59264b16c175a5 Mon Sep 17 00:00:00 2001 From: Philip Degarmo Date: Sun, 2 May 2021 08:39:14 -0700 Subject: [PATCH 5/6] Better explanation of new backend --- content/news/021/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/content/news/021/index.md b/content/news/021/index.md index b3d28e472..3a3427862 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -241,12 +241,13 @@ culling and a new OpenGL ES 2.0/WebGL 1.0 backend. [@dvd] revived the `rafx-visibility` crate and implemented frustum culling. Frustum culling greatly reduces draw call counts, improving frame rate in certain scenes. The changes also improve consistency between various -rendering feature implementations (i.e. meshes, text etc.) and avoid running +rendering feature implementations (i.e. meshes, text etc.) and avoids running the extract-prepare-submit pipeline on entities that are not visible. -[@aclysma] implemented a new OpenGL ES 2.0 backend. By supporting ES2, rafx -can now be used with almost any mobile device or within any browser ([~98% -coverage][rafx-webgl-caniuse].) +[@aclysma] implemented an OpenGL ES 2.0 backend. While ES2 cannot support all +funcionality in `rafx-api`, it provides very broad compatibility. This means +the core functionality of rafx-api can be used with almost any mobile device +or browser ([~98% web coverage][rafx-webgl-caniuse].) [rafx]: https://github.com/aclysma/rafx [rafx-webgl-demo]: https://aclysma.github.io/rafx/demo-web/index.html From 203ef32e80760f29a66c3b8fab16bdbdfcd2ebf3 Mon Sep 17 00:00:00 2001 From: Joe Clay <27cupsofcoffee@gmail.com> Date: Sun, 2 May 2021 16:48:56 +0100 Subject: [PATCH 6/6] Update content/news/021/index.md --- content/news/021/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/news/021/index.md b/content/news/021/index.md index 13a7603c1..40b649912 100644 --- a/content/news/021/index.md +++ b/content/news/021/index.md @@ -235,8 +235,8 @@ GUI. _Rafx WebGL 1.0 support, [click for live demo][rafx-webgl-demo]!_ Rafx is a multi-backend renderer that optionally integrates with the -[distill][rafx-distill] asset pipeline. This month, we added frustum -culling and a new OpenGL ES 2.0/WebGL 1.0 backend. +[distill][rafx-distill] asset pipeline. This month, frustum culling +and a new OpenGL ES 2.0/WebGL 1.0 backend were added. [@dvd] revived the `rafx-visibility` crate and implemented frustum culling. Frustum culling greatly reduces draw call counts, improving frame rate