Welcome back!

It’s been a busy month for Poly Haven and there’s a lot to talk about 🙂

GPU go brrr

Thanks to your donations on Patreon, a new RTX 3090 joins the family!

We’ve decided to make 16k the new standard resolution for texture maps going forward, and to achieve this we need some serious hardware.

16k textures may sound overkill for now, but with hardware capabilities constantly improving year by year and new techniques like direct storage on the horizon, artists’ and users’ expectations for texture quality are only going to increase. It seems pointless producing assets for today’s standard, while game developers and film studios are working on content that will only be seen publicly a few years from now, when expectations of quality are higher than today.

The main requirement is a massive amount of memory, hence the 24GB 3090 instead of the vastly cheaper 10GB 3080 or any AMD card. 16k is the target for now, but we do also plan to explore going even higher.

GPU memory is not the only consideration though. Our photoscanned surfaces come from around 200 high resolution photos, producing meshes over 100 million triangles – so it was also necessary to get a set of 128GB of RAM for Rico’s machine, as well as a few more TB of internal storage.

Before making this massive purchase, of course we spent a lot of time researching options and testing our current hardware’s limits. One of the options we explored was cloud-based hardware rental from services like Renderro and BeBop, where you rent a machine on the other side of the planet (in our case) at some hourly rate for temporary use. The main advantage of this method is a low up-front cost, but in the long term with regular use it works out quite expensive. Our conclusion was that (for now at least) it’s more effective to invest our own hardware, which is more capable than the hardware available in the cloud anyway.

Cross-polarized ring flash

Traditionally, photogrammetry (for both texture scans and model scans) has to be done outside on an overcast day to get enough light for reasonable shutter speeds and to avoid hard shadows being baked into your textures. A controlled environment with a tripod is another option, though since you’re shooting hundreds of images, a long exposure time really should be avoided if possible.

Another option is to bring your own light!

We’ve bought a ring flash that will allow us to shoot texture scans in a wider variety of lighting conditions.

The main problem when shooting texture scans with a ring flash is that for any surface that’s remotely reflective (basically everything), you end up with some massive bright reflections in the center of the frame.

To remove these, we’ll be using a technique called cross-polarized photography – basically you put a polarizing filter on both the light (in our case using a custom 3d printed mount) and the camera, oriented perpendicularly to each other – which almost completely eliminates all reflections.

Here’s an old test I did to show the effect:

We haven’t shot anything with this flash yet (the polarizing filter for the light just arrived this week), but from early tests it looks like this method is pretty ideal.

Blends for every texture

On the new Poly Haven site, we’ll be providing blend files for every texture in order to make it easier to download the whole material in one go, rather than dealing with individual image files and having to set them up in Blender yourself.

James has been working on this for all our 200+ existing textures, as well as writing a script to normalize all displacement/height maps in order to allow the use of JPG displacement maps in some cases without too many noticeable artefacts.

80TB per month

As I mentioned last month, one of the challenges of hosting our assets is the large amount of internet bandwidth needed to serve them to users.

Our experience tells us that a single web server, even combined with Cloudflare caching, is not enough for this kind of scale. Cloud services like AWS/Google/B2 are always what people recommend, but in our case they would be unreasonably unaffordable and use up our entire budget.

Instead, we’re going with a simple load balanced network of cheap dedicated servers. This makes it very easy to scale the system as demand increases.

At the moment, there are two simple $8/m servers in the pool, using Cloudflare for both the load balancer itself ($5/m) and as a caching layer ($20/m) which handles around 90% of the total traffic at the moment.

This total of ~$40 per month to serve 80TB of traffic is significantly more cost effective than hosting the whole thing on even the cheapest cloud storage service (B2, ~$800/m estimate)

This system is already in use for HDRI Haven, though some more work under the hood is needed before we can use it for models and textures too.

AdSense suspended

Out of the blue last week I received this email from Google AdSense:

The result of this “limitation” is essentially zero ad revenue since last week.

Obviously to my knowledge we haven’t been clicking our own ads or generating invalid traffic, nor do I see any increase in traffic or ad impressions, so I really have no idea what caused this.

I assume this is either some kind of false detection, or someone maliciously trying to hurt us. Either way, Uncle Google doesn’t like us and there’s literally nothing we can do about it.

The email later goes on to say: “While this ad serving limit typically impacts publishers for less than 30 days, it may take longer in some cases.”

AdSense currently forms around a third of our total income, but we’re not in any immediate financial peril. We have a fair amount of savings from past years and personal funds we can inject if needed. Patreon donations continue strong, and our new corporate sponsorship tiers have provided some additional relief.

To solve this issue long term (I’m not going to sit and wait for Google to realize we’re OK), we’ll be implementing our own ad server using Revive, an open source tool.

For the time being, from a user point of view this means less ads in total (one per page), no more animated ads, no more personalized tracking from Google AdSense, and ads that are now specifically relevant to 3D rather than whatever unrelated crap Google feels like showing you.

The first ads you will see from this new system will be for Rob’s environment course, as he will personally be buying a lot of the initial ad space in order to help us cover costs in the short term while we figure out the system and build relationships with other advertisers.

This will likely start sometime next week on Texture Haven first, and then roll out to the other Havens once things appear stable.

If Google happens to re-approve us in the next few days, then these systems may work together, however if not then we will be removing AdSense entirely.

Regardless of this issue, moving away from Google AdSense is something we’ve been wanting to do at some point anyway.

Latest texture scans

Rob, Dimitri and Rico have been on a roll for a while, producing excellent new texture scans, some of which are already online:

Upcoming models

James has also been hard at work on some more props for the pawn shop scene:

Upcoming HDRIs

Here’s a sneak peek of next month’s HDRIs from Sergej and Andreas 🙂

That’s all folks! See you next month 🙂

As usual if you have an questions or just want to chat, feel free to leave a comment below or join us on Discord. We’re always keen for feedback and ideas.

Welcome to Poly Haven’s first Development log 🙂

This is the start of a new monthly (?) series that summarizes progress of our work creating assets for polyhaven.com (or, currently: hdrihaven.com, texturehaven.com and 3dmodelhaven.com).

General progress & state

We’ve hired Rico Cilliers and James Ray Cock as full time 3D artists, who are now spending most of their time creating 3d models for our Pawn Shop project which I’ll explain below.

Dimitrios Savva (“Meat”), an experienced camera operator, also joins the team part-time to work on more texture scans.

Andreas and Sergej continue to work on HDRIs every month.

Rob continues making texture scans regularly and helps the rest of the team figure out good workflows.

I (Greg) work on web development, project planning, quality control, and business things.

Read More

My goal with this series of articles is to explain everything I’ve learnt about creating HDRIs in order to try and raise the standard of quality of HDRIs shared online.

It’s not difficult to make an HDRI that’s good enough for your own use, but if you want to make really good HDRIs that provide accurate and dependable lighting no matter the use case, you need to thoroughly understand every step of the process and how it will affect the outcome.

I’m only going to cover only the basics here, and then follow up with a number of smaller articles for specific situations in order to avoid going on too many tangents. A list of these articles can be found at the end, though some of the articles will be linked to throughout as well.

Read More

As you know, it is absolutely imperative that the light sources in an HDRI are not clipped.

In some indoor cases, this is fairly easy to achieve even accidentally, but as soon as you go outdoors and try to shoot the sun directly you’ll realize how absurdly bright it really is, and how difficult it is to shoot without careful thought and planning.

Even at my camera’s darkest exposure settings – 1/4000, F/22 and ISO 100 – the sun is still far too bright to capture without overexposing (clipping) it:

1/4000, F/22, ISO 100

We need to go darker.

Read More

Perhaps one of the most common questions I get asked is “What camera do you use?”.

Usually with any kind of art or industry when people ask what specific brand or model of tool you use, the answer is often “It doesn’t matter, use whatever you’re comfortable with”.

While it’s true that you can create an HDRI with almost any camera, including the one in your phone, if you want to create HDRIs at an acceptable resolution with unlimited dynamic range, there are actually some very specific requirements that not all cameras meet, even really expensive ones.

Apart from the obvious requirements like being able to shoot in RAW with full manual control, there are some aspects of your camera gear that have significant influence over the types of HDRIs you can create, what resolution your HDRIs will be, how long they will take to shoot, or if you can even shoot them at all.

This article will attempt to explain all these aspects and what difference they make.

Read More

If you understand the difference between using a JPG file and a HDR/EXR file for an HDRI, then you already understand clipping 🙂

“Clipping” is when the brightest part of an HDRI is “cut off”, or “burnt out”.

This is usually seen on light sources, like the sun or a bright lamp, and is the result of the HDRI photographer not using a dark enough exposure to capture the light completely.

If you’re an HDRI photographer and you want to learn how to avoid clipping, read this article next.

Read More

The busy first month of the new site has already passed with outstanding and unexpected success. In fact, it was so unexpectedly successful and busy that the second month is almost over too!

The first four goals on Patreon were reached in short succession: 16k versions of each HDRI were added, the first Vault was unlocked, and I promised to publish one two HDRIs every single week.

As I’ve said before, I totally did not expect this kind of support. I was fairly sure people would like the new site (who doesn’t like free stuff), but to actually throw money at me to help me keep it going was just a pipe dream. Of course I worked hard to try and make that dream a reality, but there was no way to know if it would actually work.

Well, luckily for all of us, it did 🙂 At least so far as to cover all of its own costs and provide a reasonable budget to keep producing HDRIs regularly. It’s not enough for me to live off yet, I still need to do freelance work and find other sources of income, but it is a most excellent start.

Read More

Just thought I’d share what my plans are for the rest of the year to give you some idea of the HDRIs to come.

Tomorrow I’m heading to the Kruger Park for a week with my family. This is the same place that I’ve shot quite a few HDRIs in the past, and looking at the moon phases it seems like I might get another opportunity to try an astro-HDRI (without the moon overpowering all the stars). It probably won’t work that well with my current equipment, it’ll be noisy as heck, but still worth a shot (or 200). If it doesn’t work out, I’ll at least have a good example for why I need new gear 😉

Shortly after I get back, I’ll be off again to the Blender Conference 🙂 Last year was really a lot of fun, especially after the conference when I headed alone to Germany to shoot HDRIs. This time I’ll do something similar, but instead it’ll be Italy, and I’ve asked Rico to join me and shoot backplates for all the HDRIs (like we did for Cape Town last year). Of course the backplates will only be available once the goal is reached on Patreon, but at least there’ll be some immediate content when it is.

The first trip to the Kruger is mostly a holiday so it’ll be funded out of my own pocket. The second trip is partly for the Blender Conference, and partly for new HDRIs, so the costs will be split proportionately between my pocket and the travel budget portion from Patreon. Obviously a trip this size is rather costly, so it’ll likely use up the travel budget for a good few months, but luckily they don’t happen very often.

That’s all for now! If you support me on Patreon, don’t forget you can help decide how your money is spent, what trips I go on, etc. using the Trello board.

TLDR: Having people use my HDRIs is far more important to me than money.

I’ve tried writing this post a number of times in various ways, but I don’t think it’s possible to explain what HDRI Haven is now and why it’s changed without first telling you how it began.

At the beginning of last year I launched HDRI Haven as an online store for people to buy the best HDRIs I could make at the cheapest rates I could offer. But that wasn’t actually my initial plan to be honest, and while it was working pretty well, it always felt like I had taken the easy route.

My dream from the very beginning when I started shooting HDRIs was to release everything for free, in the same open-source spirit as the Blender community, giving everyone equal access to the same tools and assets to achieve both creative freedom and freedom from financial constraints.

Read More