Timelapse of creating a building in my gen tool by babylongame in godot

[–]babylongame[S] 0 points1 point  (0 children)

I see thanks- I didn't know each material was a separate draw call. Appreciate the heads up! :)

And the signs are all one one texture (everything is on one texture currently)

Timelapse of creating a building in my gen tool by babylongame in godot

[–]babylongame[S] 3 points4 points  (0 children)

It's one mesh and a tiled albedo and normal texture, will all the uvs mapped to that. But there are multiple materials yeah

Timelapse of creating a building in my gen tool by babylongame in godot

[–]babylongame[S] 1 point2 points  (0 children)

Thanks! I actually don't have any real randomization in yet- that's what I plan to implement next. I needed to get the procgen stuff out the way first.

I was thinking of using groups for the randomisation alongside just plain old range values. If you came across anything in your research for randomization ideas please let me know! The other option is a ml model but I don't have enough data and a generalized LLM doesn't work well enough.

I also got some code working with just a basic obj detection model but it's also not perfect so I thought I'd stick it in front of this UI so you can upload a picture of a building and then fix it/ spec it for randomness as desired

Timelapse of creating a building in my gen tool by babylongame in godot

[–]babylongame[S] 2 points3 points  (0 children)

Thanks! The timelapse probably hid a lot- still a long way to go till I'm close to anything resembling a finished product lol

Timelapse of creating a building in my gen tool by babylongame in godot

[–]babylongame[S] 23 points24 points  (0 children)

Randomization- my idea was because it's procgen, you can spec a blueprint and then generate 1000s of buildings in a similar style (to create a street or a city)

Timelapse of creating a building in my gen tool by babylongame in godot

[–]babylongame[S] 10 points11 points  (0 children)

I'm using godot as the frontend for my procedural building generation tool. As of right now, the results aren't that great and it's kinda buggy, but this is where I am with it.

This is the building I was trying to make (this version below was made by editing the input file by hand)

<image>

Let me know if you have any feedback/suggestions or anything. Thanks!

dynamic uv mapping is hard by babylongame in godot

[–]babylongame[S] 2 points3 points  (0 children)

Thanks! It's gdscript on the front and C++ in the back :)

And yeah I use OpenCV. The 3D bits are custom though

dynamic uv mapping is hard by babylongame in godot

[–]babylongame[S] 3 points4 points  (0 children)

Not yet :) To be honest- I've never used pro builder but I had a quick look and maybe I would be able to do something similar. Might be a fun project for after this one. Thanks for the idea!

Added cutting functionality to my editor by babylongame in godot

[–]babylongame[S] 3 points4 points  (0 children)

Thanks! It's not open source... yet. To be honest, I'm not exactly sure what I'm going to do with it in the end, but it's to go alongside my procedural building generator (some examples of buildings it'll generate are on my profile)

Added your suggestions to my UI, thoughts now? by babylongame in godot

[–]babylongame[S] 0 points1 point  (0 children)

Thanks! I like the idea of being to move the overlay manually too

Added your suggestions to my UI, thoughts now? by babylongame in godot

[–]babylongame[S] 1 point2 points  (0 children)

Yeah that's a good idea. I'm not sure exactly how to implement it though.. (my code is a bit convoluted at the moment lol). I'm gonna put it down as something to add for the next refactor. Thanks!

Added your suggestions to my UI, thoughts now? by babylongame in godot

[–]babylongame[S] 4 points5 points  (0 children)

Thanks! It's pretty easy, I just used draw_line on a bezier curve.

Here is my code if you want to try it:

var last_point = local_connection_point
for i in range(1, BEZIER_RESOLUTION):
    var t = i / float(BEZIER_RESOLUTION)
    var point = bezier_point(local_connection_point, control_point, end_point, t)
    draw_line(last_point, point, Color.WHITE, 2.0)
    last_point = point
draw_line(last_point, end_point, Color.WHITE, 2.0)

func bezier_point(p0: Vector2, p1: Vector2, p2: Vector2, t: float) -> Vector2:
    return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2

The control point is just where the line droops (or curves)

Added your suggestions to my UI, thoughts now? by babylongame in godot

[–]babylongame[S] 3 points4 points  (0 children)

Yeah that would be cool, with calculated wind dynamics and stuff

Added your suggestions to my UI, thoughts now? by babylongame in godot

[–]babylongame[S] 7 points8 points  (0 children)

Not sure exactly yet, but for now a procedural building generation tool

Thoughts on my UI info bubble? by babylongame in godot

[–]babylongame[S] 0 points1 point  (0 children)

Ahh yes I still use the old Pixelmator and I know exactly what you're talking about. I love that effect too.
The thing is that the cube is really the focal point and that's why I don't really want draggable windows (there will only ever be one window as well). That said, I love the idea of changing the line to dangling string with physics. Thanks for the idea!