Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ebc7214

Browse filesBrowse files
committed
Deploy to GitHub pages
1 parent 74e725b commit ebc7214
Copy full SHA for ebc7214

File tree

2 files changed

+102
-102
lines changed
Filter options

2 files changed

+102
-102
lines changed

‎posts/newsletter-015/index.html

Copy file name to clipboardExpand all lines: posts/newsletter-015/index.html
+51-51Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,57 @@ <h3 id="building-blocks"><a href="https://github.com/bonsairobo/building-blocks"
723723
when doing large edits and working with large maps:</p>
724724
<p><img src="https://rust-gamedev.github.io/posts/newsletter-015/voxel-mapper.gif" alt="Terraforming demo" /></p>
725725
<p>Join <a href="https://discord.gg/CnTNjwb">Building Blocks's Discord server</a>.</p>
726+
<h3 id="rust-gpu-v0-1"><a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU v0.1</a>&nbsp;<a class="anchor" href="#rust-gpu-v0-1" aria-hidden="true">#</a>
727+
</h3>
728+
<p><img src="https://rust-gamedev.github.io/posts/newsletter-015/rustgpu.jpg" alt="Rust GPU Sky" />
729+
<em>Sky example in Rust GPU</em></p>
730+
<p><a href="https://github.com/EmbarkStudios/rust-gpu">Rust GPU</a> is a project backed by <a href="https://www.embark-studios.com/">Embark Studios</a>
731+
to make Rust a first-class language and ecosystem for building GPU code.</p>
732+
<p>Although still in very early stages of development,
733+
<a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU released v0.1 in October</a>,
734+
and has already garnered over 2000 stars on Github.
735+
Currently, compiling and running very simple shaders
736+
works, and a significant portion of the core library also compiles. While things
737+
like if-statements and while-loops are working, many things aren't implemented yet.
738+
For example, for-loops, iterators and match/switch aren't supported yet. That
739+
means that while being technically usable, Rust GPU is far from being
740+
production-ready.</p>
741+
<p>The motivation behind the project:</p>
742+
<blockquote>
743+
<p>Historically in games, GPU programming has been done through writing either
744+
HLSL, or to a lesser extent GLSL. These are simple programming languages that
745+
have evolved along with rendering APIs over the years. However, as game engines
746+
have evolved, these languages have failed to provide mechanisms for dealing with
747+
large codebases, and have generally stayed behind the curve compared to other
748+
programming languages.</p>
749+
<p>In part this is because it's a niche language for a niche market, and in part
750+
this has been because the industry as a whole has sunk quite a lot of time and
751+
effort into the status quo. While over-all better alternatives to both languages
752+
exist, none of them are in a place to replace HLSL or GLSL. Either because they
753+
are vendor locked, or because they don't support the traditional graphics
754+
pipeline. Examples of this include CUDA and OpenCL. And while attempts have been
755+
made to create language in this space, none of them have gained any notable
756+
traction in the gamedev community.</p>
757+
</blockquote>
758+
<p>The code for the sky example above:</p>
759+
<pre style="background-color:#2b303b;">
760+
<code><span style="color:#c0c5ce;">#[</span><span style="color:#bf616a;">spirv</span><span style="color:#c0c5ce;">(entry = &quot;</span><span style="color:#a3be8c;">fragment</span><span style="color:#c0c5ce;">&quot;)]
761+
</span><span style="color:#b48ead;">pub fn </span><span style="color:#8fa1b3;">main_fs</span><span style="color:#c0c5ce;">(</span><span style="color:#bf616a;">input</span><span style="color:#c0c5ce;">: Input&lt;Vec4&gt;, </span><span style="color:#b48ead;">mut </span><span style="color:#bf616a;">output</span><span style="color:#c0c5ce;">: Output&lt;Vec4&gt;) {
762+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir: Vec3 = input.</span><span style="color:#96b5b4;">load</span><span style="color:#c0c5ce;">().</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">();
763+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> cs_pos = Vec4(dir.</span><span style="color:#d08770;">0</span><span style="color:#c0c5ce;">, -dir.</span><span style="color:#d08770;">1</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">);
764+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> ws_pos = {
765+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> p = clip_to_world.</span><span style="color:#96b5b4;">mul_vec4</span><span style="color:#c0c5ce;">(cs_pos);
766+
p.</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">() / p.</span><span style="color:#d08770;">3
767+
</span><span style="color:#c0c5ce;">};
768+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir = (ws_pos - eye_pos).</span><span style="color:#96b5b4;">normalize</span><span style="color:#c0c5ce;">();
769+
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> color = </span><span style="color:#96b5b4;">sky</span><span style="color:#c0c5ce;">(dir, sun_pos); </span><span style="color:#65737e;">// evaluate Preetham sky model
770+
</span><span style="color:#c0c5ce;"> output.</span><span style="color:#96b5b4;">store</span><span style="color:#c0c5ce;">(color.</span><span style="color:#96b5b4;">extend</span><span style="color:#c0c5ce;">(</span><span style="color:#d08770;">0.0</span><span style="color:#c0c5ce;">))
771+
}
772+
</span></code></pre>
773+
<p><em>Discussions:
774+
<a href="https://reddit.com/r/rust/comments/jg056t/introducing_rustgpu_v01">/r/rust</a>,
775+
<a href="https://news.ycombinator.com/item?id=24858172">Hacker News</a>,
776+
<a href="https://twitter.com/repi/status/1319274584915365888">Twitter</a></em></p>
726777
<h3 id="gfx-rs"><a href="https://github.com/gfx-rs/gfx">gfx-rs</a>&nbsp;<a class="anchor" href="#gfx-rs" aria-hidden="true">#</a>
727778
</h3>
728779
<p>gfx-rs support for D3D has been improved. <a href="https://github.com/kvark">@kvark</a> landed a few critical fixes
@@ -958,57 +1009,6 @@ <h3 id="proton-5-13-1"><a href="https://github.com/ValveSoftware/Proton">Proton<
9581009
<p>Documentation for building Proton is available on <a href="https://github.com/ValveSoftware/Proton">Github</a>.
9591010
Further documentation on Media Converter and its source code is available
9601011
on the module's <a href="https://github.com/ValveSoftware/Proton/tree/proton_5.13/media-converter">repository</a></p>
961-
<h3 id="rust-gpu-v0-1"><a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU v0.1</a>&nbsp;<a class="anchor" href="#rust-gpu-v0-1" aria-hidden="true">#</a>
962-
</h3>
963-
<p><img src="https://rust-gamedev.github.io/posts/newsletter-015/rustgpu.jpg" alt="Rust GPU Sky" />
964-
<em>Sky example in Rust GPU</em></p>
965-
<p><a href="https://github.com/EmbarkStudios/rust-gpu">Rust GPU</a> is a project backed by <a href="https://www.embark-studios.com/">Embark Studios</a>
966-
to make Rust a first-class language and ecosystem for building GPU code.</p>
967-
<p>Although still in very early stages of development,
968-
<a href="https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1">Rust GPU released v0.1 in October</a>,
969-
and has already garnered over 2000 stars on Github.
970-
Currently, compiling and running very simple shaders
971-
works, and a significant portion of the core library also compiles. While things
972-
like if-statements and while-loops are working, many things aren't implemented yet.
973-
For example, for-loops, iterators and match/switch aren't supported yet. That
974-
means that while being technically usable, Rust GPU is far from being
975-
production-ready.</p>
976-
<p>The motivation behind the project:</p>
977-
<blockquote>
978-
<p>Historically in games, GPU programming has been done through writing either
979-
HLSL, or to a lesser extent GLSL. These are simple programming languages that
980-
have evolved along with rendering APIs over the years. However, as game engines
981-
have evolved, these languages have failed to provide mechanisms for dealing with
982-
large codebases, and have generally stayed behind the curve compared to other
983-
programming languages.</p>
984-
<p>In part this is because it's a niche language for a niche market, and in part
985-
this has been because the industry as a whole has sunk quite a lot of time and
986-
effort into the status quo. While over-all better alternatives to both languages
987-
exist, none of them are in a place to replace HLSL or GLSL. Either because they
988-
are vendor locked, or because they don't support the traditional graphics
989-
pipeline. Examples of this include CUDA and OpenCL. And while attempts have been
990-
made to create language in this space, none of them have gained any notable
991-
traction in the gamedev community.</p>
992-
</blockquote>
993-
<p>The code for the sky example above:</p>
994-
<pre style="background-color:#2b303b;">
995-
<code><span style="color:#c0c5ce;">#[</span><span style="color:#bf616a;">spirv</span><span style="color:#c0c5ce;">(entry = &quot;</span><span style="color:#a3be8c;">fragment</span><span style="color:#c0c5ce;">&quot;)]
996-
</span><span style="color:#b48ead;">pub fn </span><span style="color:#8fa1b3;">main_fs</span><span style="color:#c0c5ce;">(</span><span style="color:#bf616a;">input</span><span style="color:#c0c5ce;">: Input&lt;Vec4&gt;, </span><span style="color:#b48ead;">mut </span><span style="color:#bf616a;">output</span><span style="color:#c0c5ce;">: Output&lt;Vec4&gt;) {
997-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir: Vec3 = input.</span><span style="color:#96b5b4;">load</span><span style="color:#c0c5ce;">().</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">();
998-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> cs_pos = Vec4(dir.</span><span style="color:#d08770;">0</span><span style="color:#c0c5ce;">, -dir.</span><span style="color:#d08770;">1</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">, </span><span style="color:#d08770;">1.0</span><span style="color:#c0c5ce;">);
999-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> ws_pos = {
1000-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> p = clip_to_world.</span><span style="color:#96b5b4;">mul_vec4</span><span style="color:#c0c5ce;">(cs_pos);
1001-
p.</span><span style="color:#96b5b4;">truncate</span><span style="color:#c0c5ce;">() / p.</span><span style="color:#d08770;">3
1002-
</span><span style="color:#c0c5ce;">};
1003-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> dir = (ws_pos - eye_pos).</span><span style="color:#96b5b4;">normalize</span><span style="color:#c0c5ce;">();
1004-
</span><span style="color:#b48ead;">let</span><span style="color:#c0c5ce;"> color = </span><span style="color:#96b5b4;">sky</span><span style="color:#c0c5ce;">(dir, sun_pos); </span><span style="color:#65737e;">// evaluate Preetham sky model
1005-
</span><span style="color:#c0c5ce;"> output.</span><span style="color:#96b5b4;">store</span><span style="color:#c0c5ce;">(color.</span><span style="color:#96b5b4;">extend</span><span style="color:#c0c5ce;">(</span><span style="color:#d08770;">0.0</span><span style="color:#c0c5ce;">))
1006-
}
1007-
</span></code></pre>
1008-
<p><em>Discussions:
1009-
<a href="https://reddit.com/r/rust/comments/jg056t/introducing_rustgpu_v01">/r/rust</a>,
1010-
<a href="https://news.ycombinator.com/item?id=24858172">Hacker News</a>,
1011-
<a href="https://twitter.com/repi/status/1319274584915365888">Twitter</a></em></p>
10121012
<h2 id="popular-workgroup-issues-in-github">Popular Workgroup Issues in Github&nbsp;<a class="anchor" href="#popular-workgroup-issues-in-github" aria-hidden="true">#</a>
10131013
</h2>
10141014
<!-- Up to 10 links to interesting issues -->

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.