HackerTrans
TopNewTrendsCommentsPastAskShowJobs

Mrvolcano

no profile record

Submissions

Show HN: I created a Blender extension to supercharge Blender's texture workflow

superhivemarket.com
1 points·by Mrvolcano·11 เดือนที่ผ่านมา·1 comments

Show HN: I created a reverse search engine to find the source of anime clips.

cleithral.com
41 points·by Mrvolcano·2 ปีที่แล้ว·22 comments

comments

Mrvolcano
·11 เดือนที่ผ่านมา·discuss
Hi, I'm Rayn Haque, a 17-year-old indie game developer who recently started learning Unity and Blender. I began coding at 14 during the pandemic, starting with Python and later moving into full-stack web development using Next.js and Prisma. I actually mastered Next.js just by reading its documentation over the course of a month.

As I got older, I decided to focus on a specific field—game development—using Unity and Blender. One major challenge I encountered was that Blender's shader system isn't compatible with Unity’s. This meant I had to bake materials to transfer them, but Blender’s built-in baking system is quite limited. It lacks support for many important map types like metallic, subsurface scattering, and IOR. Additionally, if you forget to mute the metallic map, your baked textures come out too dark. Things get even more complicated when you're working with multiple material slots or baking several objects into one.

I looked for third-party tools to help, but the free options didn’t meet my needs, and I couldn’t afford the paid ones. So, I decided to build my own Blender extension. Despite having less than a year of Blender experience, I jumped into creating one—right around the time Blender 4.0 deprecated traditional add-ons in favor of extensions and made major API changes.

There was very little documentation or tutorials on creating extensions—most resources focused on the old add-on system. I had to join Blender Discord communities, read through Blender’s API docs, Stack Overflow threads, and forum posts to figure things out. It was tough, but after six months of work, I built the first version of my extension. Initially, it supported just base color, normal, metallic, and roughness maps.

Then I added texture packing, which is helpful for games, and even built in an option to invert roughness maps since Unity doesn’t use them directly. Though I never needed UDIMs myself, I added automatic UDIM tile support based on UV coordinates. I kept expanding the feature set—eventually supporting 142 bake types, even though I only needed around eight.

I added many features beyond my original needs simply because I enjoyed the process of building it. Eventually, I realized most of the features were more useful for artists than game developers like me, so I decided to turn it into a product for others to use. And that’s how TexCraft was born.
Mrvolcano
·2 ปีที่แล้ว·discuss
You are correct, it does use the trace.moe API. I can't afford my own RTX A100 to train a model, so I just use trace.moe's API.
Mrvolcano
·2 ปีที่แล้ว·discuss
I actually used https://trace.moe/ api for this website.
Mrvolcano
·2 ปีที่แล้ว·discuss
Yes, this website does use trace.moe. I believe trace.moe prohibits commercial usage of their API, but since I am only asking for donations, I don't think it can be considered commercial use, so I would say I'm good.

Also, I know Python and the Hugging Face transformer API, so I could build my own model. However, I didn't because this is my first project that I put live on the internet, and I don't have an RTX A100 nor can I afford to rent one, so I wanted to keep it simple. Besides, if an API for something I want already exists, why should I build my own?
Mrvolcano
·2 ปีที่แล้ว·discuss
Thanks for trying it.
Mrvolcano
·2 ปีที่แล้ว·discuss
I use the trace.moe free api for this.
Mrvolcano
·2 ปีที่แล้ว·discuss
It's not perfect. It's just a free, simple tool. Also, it will only work if the image you upload is from an anime episode, fan art, or a picture from Google. The uploaded image needs to be from the anime episode. This is actually my first project that i put live on internet.
Mrvolcano
·2 ปีที่แล้ว·discuss
Alright fixed it. For some reason the state of one of my component wasn't updating but it's fixed now
Mrvolcano
·2 ปีที่แล้ว·discuss
Thanks for the suggestion. I might have a logic about how the extension should work.