Tag Archives: Minecraft

Please go with “DXR” or “DirectX Raytracing” (secret agenda: ray-traced Minecraft)

This is a post in which I sneak in an announcement at Gamescom from Microsoft and NVIDIA under the guise of an engaging post about terminology. I tell you now to avoid any anxiety or stress from surprise, to keep your heart healthy. The announcement is that official ray tracing support is coming to the Windows 10 Bedrock edition of Minecraft. Video here; it’s lovely:

Now the gripping terminology post:

I’ve seen “DirectX Raytracing” and “DXR” used for Microsoft’s DirectX 12 API extension – perfect. My concern with today’s announcement is seeing “DirectX R” and “DirectX R raytracing” getting used as terms. Please don’t.

OK, I feel better now. Go enjoy the video! It’s nice stuff, and I say that as an entirely unbiased source, other than being employed by NVIDIA and loving ray tracing and Minecraft. I particularly enjoy the beams o’ light effects, having played with these long ago.

Minecraft fans: It will work on only the Windows 10 Bedrock Edition, not the Java Edition, so Sonic Ether’s Unbelievable Shaders project (which offers some ray tracing, but currently does not use RTX hardware) is unaffected. There are some technical details on Polygon, and at the other end of the spectrum, various musings on Reddit.

Minecon 2016 Report

Say what? Minecon is a convention for Minecraft, so why in this blog? Well, I was invited to be on a panel about 3D printing Minecraft models, since I wrote Mineways (which gets a crazy 600 downloads a day; beats me who all these people are. I think it’s a case of 600 download it, 60 try it, 6 try it more than once, 0.6 become real users).

David Ng in the Mineways hat

David Ng in the Mineways hat

It was a bit odd going to this convention, especially since it was at the Anaheim Convention Center, where I was just two months ago for SIGGRAPH. This convention is the same size as SIGGRAPH, 12,000 attendees plus panelists, staff, exhibitors, etc. One organizer said a total of 14K attended. Of course, the tickets for Minecon sold out in 6 minutes – there are over 100 million copies of Minecraft sold and a lot of fanatical users out there. It’s only two days long, it uses somewhat less (and sometimes more) of the convention center’s space, and the median age of an attendee is probably around 12. My photo album is here, note in particular this one, where just about everyone is in one very long room – that’s something I don’t see at SIGGRAPH.

Not SIGGRAPH

Not SIGGRAPH

It’s not all just kids and pixelated blocks. There were a few good general technical talks about VR, video techniques, voxel modeling methods, etc. For example, John Carmack and others from Oculus spoke about the challenges of porting Minecraft to the Rift. Scattered throughout this presentation are some interesting bits about the user experience. Some clever ideas such as the person jumping a short distance actually gets a view that travels in a straight line, though his friends see him jumping in a parabola (parabolas upset the stomach more). Playing the ambient music actually helps stave off motion sickness for awhile, or so they think. They have a “chill out” feature that lets you leave the action and hang out in a quiet virtual room, looking at the game through a 2D window. Various other things. They spent 6 months of polishing the VR version before releasing it (despite a fair bit of pressure to get it out the door in a minimal-port form). Best/ickiest Carmack quote, “Don’t push it. We don’t need to be cleaning up sick in the demo room.” Honestly, an interesting session, with hints of the political pressure on the team. I’m impressed that they were able to take the time to polish the experience, given how an early release of the game’s port would undoubtedly help drive sales.

BlockWorks had a session on how they did their voxel modeling, with some slides of their incredible constructions. Seriously, click that link. It was interesting in that each artist tends to have a specialty – architecture, organics, mechanicals, etc. They use the free Chunky path tracer (great tool! I’ve played with it.) along with traditional renderers such as Cinema 4D. I would have liked to hear more about their custom voxel-based modeling tools, but alackaday, not much mention beyond WorldEdit and VoxelSniper. Also, they avoid using mesh voxelizers such as binvox and Qubicle. (Qubicle, by the way, looks like a nice package for All Things Voxel, including a mesh voxelizer than retains the color of the mesh.) Related, though not at Minecon, this article about RenderMan and Minecraft – a good detailed “how to” read.

You remember the Visible Human Project? I laughed when I saw this, and talked at length with its creator, Wizard Keen, aka Adam Clarke.

1:40 into The Torso

1:40 into The Torso

I also met some people working on Spigot, the unofficial mod platform for Minecraft. One explained to me in depth how Minecraft’s impressive terrain generation worked, as he had carefully decompiled it all in order to make a mod. Basically, there’s pass after pass of applying Perlin Noise in various ways. First the overall terrain, in a single block type. Then put biomes on. Then for each biome add the “topsoil layer” (e.g. grass and three dirt atop everything for the grasslands). Carve a bit more. Add tunnels separately. Add minerals. On and on. What was interesting to me was that there was this layered approach at all, that it wasn’t some giant single-pass function but each had its own function, e.g. add topsoil.

Other than the lead developer of Minecraft, YouTubers were the stars of the con. By some estimates, 15% of Youtube’s content is videogame related, and Minecraft dominates (GTA’s second). (Hey, before I did 12 steps for Minecraft, I made well over a hundred videos, mostly not worth watching. Here’s a reason why I love Minecraft.) The two main video editing packages used for Minecraft videos are Premier Pro & Vegas Pro. People uses FRAPS, OBS, and Action for video capture.

Tidbit: this Minecraft-related Hour of Code lesson from code.org is evidently extremely popular. Point kids at it, it uses a visual code editor (Blockly) to introduce “if” statements, loops, etc.

Entirely non-Minecraft, but I learned about it at Minecon: I’m probably the last person on Twitter to know about tweetdeck, which makes Twitter a bit more friendly.

My little talk at the panel went well, slides here. I particularly like that David Ng is using Minecraft with his students to build physical worlds.

Oh, and videos. I’d say the most amazing videos I saw were in the Rube Goldberg session; short session preview here, worth your while. The coaster rides by Nuropsych1 and others were astounding. If you want to veg out (and wait through ads), check the Dr. Who, GhostBusters, and Beetle Juice coasters, among others. Impressive builds, great lighting effects and optical illusions, lovely redstone (electronics) work, camera tricks, and it’s astounding it can all be done within Minecraft.

4:18 in to the Dr. Who coaster https://youtu.be/AKyt12Ezh3s?t=258

4:18 in with the Dr. Who coaster – click that link right now!

So which laws does this picture violate?

In honor of SOPA-blackout day, here’s my sideways contribution to the confusion.

Is this blog post in potential violation of copyrights or trademarks? I don’t honestly know. The (great!) image below was made by Lee Griggs and Tomás Fernández Serrano at SolidAngle, the company that develops the Arnold renderer, used by (among others) Sony Imageworks for CG effects in their films.

So, let’s see, some issues with this post and image are:

He used Mineways to export the model from a Minecraft world. A texture pack terrain image is applied to the model. So, if you use a texture pack from some copyrighted source (which all of them are, by default; sadly, few declare themselves Creative Commons in any form), are you violating their copyright? What if, like in the image below, you can’t actually make out any details of the textures?

This Minecraft world was built by a lot of people – are their models somehow protected? In what ways? Over on the left there I see Mario and Luigi. These are trademarked figures (or copyrighted?). Are these illegal to build in your own Minecraft world? What about public, shared worlds where others see them? Or is it fine under good faith, since it’s non-commercial? Would selling the print then be illegal? How big does Mario have to be to infringe? Is it the building of them or the photographing of these models that’s illegal? Or is this a “public virtual space” where taking photos is fine? I can make some guesses, but don’t know.

Similarly, if one of the builders used a voxelizer like binvox to build a model from a commercially-sold mesh, would that be OK? At what resolution of voxels does the original mesh and the voxelized version become close enough for a violation to occur? Luckily, the model itself is just a bunch of cubes, and cubes themselves are not something protected by any laws, right? (well, Marchings Cubes were, but that’s a different story.) If I could download their mesh, could I legally use it? Probably not commercially, since it’s the arrangement of the cubes that’s important.

You’re saying to yourself that this is “tempest in a teapot” stuff, with no real likelihood anyone would demand a takedown of fan art. I remember the early years of the commercial internet, where Lucasfilm did just that, endlessly ordering takedowns of unauthorized Star Wars images, models, etc. (I guess they still do?). I even understand it: I’ve heard trademark must be actively defended to retain it. Most interesting of all, there was a United Kingdom Supreme Court ruling last summer involving Lucasfilm: the court ruled that 3D models are covered by “design rights” by default, giving them 3 to 10 year protection, or 25 years if registered. Stormtrooper helmets were judged “utilitarian”, not sculptures, and so are not covered by these rights. Fascinating! But that’s the UK – what if I order a stormtrooper helmet from the UK for delivery to the US? I assume it’s an illegal import.

Finally, am I breaking some law by including this image in my post, using the URL of the original post‘s image? I attribute the authors, but the image is copyright, explicitly shown in the Flickr version. I think I’d invoke Fair Use, since I’m making a point (oh, and that Fair Use link won’t work for a few more hours, with Wikipedia blacked out). Confusing.

With images, textures, and models referencing each other and all sloshing around the web, what copyright, trademark, and all the rest means gets pretty hazy, pretty quick. I’m guessing most of the questions I pose have definitive answers (or maybe not!), but I know I’m part of the vast majority that aren’t sure of those answers. Which is probably mostly fine (except when corporations overstep their bounds), since our culture is much richer for all the reuse that most of us do without any financial gain and without worrying about it.

Update: I just noticed this article on Gamasutra on similar issues (the difference being that the author actually knows what he’s talking about).

Another update: looking at this article during 2016, I noticed the original image is no longer on the page. However, the Wayback Machine has a copy here. I’ve grabbed a copy and so am including the image directly, to avoid having it slip away again (items on The Wayback Machine sometimes get taken down, too). I also wanted to add that, unlike a trademark, you don’t lose your copyright if you don’t defend it against every infringement – you can be selective.

solidangleforominecraft

Seven Things for March 10th, 2011

I’m back from a NYC trip (highlight: went to the taping of the Jimmy Fallon show and saw Snooki & Laurie Anderson – now there’s a combo; if only they had collaborated) and a San Francisco trip (highlights: the Autodesk Gallery – open to the public Wednesday afternoons – plus the amusingly-large and glowing heatsink on a motherboard at the NVIDIA GDC reception). So, it’s time to write down seven other cool things.

  • A convincing translucency effect was presented at GDC by the DICE guys (there’s precomputation involved, but it looks wonderful); Johan Andersson has a rundown of other DICE presentations. Other presentation lists include ones from NVIDIA and Intel, which I need to chew through sometime soon.
  • Vincent Scheib has a quick GDC report, and a presentation on HTML 5 and other browser technologies (e.g. WebGL), with a particular interest in the handheld market. Vincent mentions the Unreal GDC demo, which is pretty amazing.
  • Intel has a nice shadows demo, showing the various tradeoffs with cascaded and exponential variance shadow maps. It compiled out of the box for me, and there’s lots to try out. My only disappointment was that Lauritzen et al.’s clever shadow tricks are not demonstrated in it! Their basic ideas center around the idea of a prepass of the scene. They get tight bounds on the near and far view planes by finding the min and max depths, and tighten the shadow maps’ frustums around the visible points. Simple and clever, large improvements in shadow quality in real scenes, and relatively easy to implement or add to existing systems. (thanks to Mauricio Vives)
  • Feed43: This is a nice little idea. It tracks any web page you want, and you specify what is considered a change to the page. When a change is detected, you’re given an RSS ping. Best part is, you can share any RSS feed created with everyone. Examples: Ke-Sen Huang’s great conference paper list, and The Ray Tracing News. If you make a good feed, let me know and I’ll pass it on here. (thanks to Iliyan Georgiev)
  • This one’s old, but it’s a great page and I found it worthwhile, a discussion of gamma correction and text rendering. The surprising conclusion is that gamma alone doesn’t work nicely for text (it does wonders for line antialiasing, as I hope you know: compare uncorrected vs. corrected). It turns out that things like TrueType’s hinting has been tuned such that antialiasing and gamma correction can be detrimental.
  • An interesting tidbit from the government report “Designing a Digital Future“: on page 71 is an interesting section. A sample quote: “performance gains due to improvements in algorithms have vastly exceeded even the dramatic performance gains due to increased processor speed.” They give a numerical algorithms example where hardware gave a 1000x gain, algorithms gave a 43000x gain, 43 times as much. (thanks to Morgan McGuire)
  • My Minecraft addiction has died down a fair bit (“just one more project…”), but I was happy to see Notch make a blog post with some technical chew, with more posts to come. He talks about a problem many apps are starting to run into, how to deal with precision problems when the terrain space is large. His solution for now, “it’s a feature!”, which actually kinda makes sense for Minecraft. He also starts to describe his procedural terrain generation algorithm.

They Tried to Make Me Go to Rehab…

There’s only one way through Minecraft addiction, burning your way through to the other side. At least that’s my current theory. I’ll get back to posting for real after just one more little project… How I did this sculpture is shown here and here, using Patrick Min’s binvox and modified viewvox. Yes, I placed all 2302 cubes by hand; it’s sort of like knitting, with vertigo. You can even take the tour on YouTube.

Really, another Minecraft article?

Here at RTR HQ we like to consider ourselves trailing edge, covering all the stories that have already been slashdotted and boingboinged, not to mention Penny Arcaded. My last post included the simulated 6502 project. The madness/brilliance of this ALU simulator boggles my mind. Yes, Minecraft is awesome, and for the low low price of $13.30 it’s had me in its terrible grasp for the past week, e.g. this.

I wanted to run through a few graphical bits about it. First, the voxel display engine is surprisingly fast for something that runs in the browser. Minecraft uses the Lightweight Java Game Library to drive OpenGL. Max McGuire figures that the program tracks the visible faces, i.e. all those between air and non-air, and then brute-force displays all these faces (using backface culling) within a given distance. The file format keeps track of 16x16x128 (high) chunks, so just the nearby chunks need display. I don’t know if the program’s using frustum culling on the chunks (I’d hope so!). Looks like no occlusion culling is done currently. The lighting model is interesting and nicely done, we haven’t quite figured it out; the game’s author, “Notch” (Markus Persson), notes that it was one of the trickier elements to make work efficiently.

Me, I’ve been looking at voxelization programs out there, to see if there’s a good one for turning models into voxel building plans (it’s a sickness, seriously). Patrick Min’s binvox (paired with his viewvox viewer) looks promising, since Patrick’s a good programmer (e.g., his CalcuDoku app), the program’s been around 6 years, and it’s open-source. Binvox uses the GPU to generate the voxel views, so it’s quite fast. It supports both parity counting and “carving”, and can also remove fully-interior voxels after processing. Parity count is for “watertight” models (closed and manifold, i.e. the polygon mesh correctly defines a solid object without gaps or self-intersections, etc.). Carving is taking 6 views and recording the closest occupied voxel from each direction. It won’t give you holes or crevices you can’t see from the 6 directions, but is otherwise good for polygonal models that are just surfaces, i.e., that don’t properly represent solids. See his page for references to all techniques he uses. I found a bug in Patrick’s OBJ reader yesterday and he fixed it overnight (fast service!), so I’m game to give it another go tonight.