I also wrote a similar program for a software renderer project I was working on; my version was not good enough to work on different obj files. So this is a good learning experience, thanks.
Just for those who are interested in Blender, in the upper right hand corner of the 3D view (where the Penger model was displayed) there is a row of 4 circular radio buttons. You use them to select the display mode. The reason you didn't see any materials is because the display mode was set to "solid color," which is normally plain grey. Clicking on the next button to the right will put it in a mode that will display the material on the model (assuming that there is a light in the scene).
Gradle in particular is amazing. I tried it a few years ago simply and only because I wanted to try a different build system for the one time in twenty years I've gone to write any Java, and I couldn't believe how unfast it was. I fully expected to find some sort of config error or other fuckup on my part, but never did. Not touching Gradle again if my life depends on it.
@@doomcrimson1680 From my experience on a good AWS server it took like from 4 to 8 hours for the first time but then it will recompile only the parts that change
@@hedlund Gradle used to be relatively fast up to versions around 2.x, maybe 3.x... but it kind of grew to be the monster it is now over time (I used gradle since back when it was 2.10 for Minecraft mod development). That said, if you truly are building a simple "hello world" with minimal or no dependencies,, after the first run (where it downloads a lot of stuff, but so does maven) it is in fact still fast (an old version of decompiled Minecraft with gradle 8.3 takes a few seconds to build after changing some code on my PC, and that includes building complete runnable fat jar). Real world projects just tend to have large dependency trees, have massive amount of code and just do a lot of stuff during build. Honestly even gradle java builds are not that slow compared to an average C++ build.
Oh wow I didn't know about your library. I was looking for some examples of some rasterizing algorithms around a year ago but couldn't find something good that wasn't extremely overengineered. Ended up writing most of them myself but it was a pain. If I knew about your library it would've been a lot easier.
At 33:18 this is exactly the performance we got when translating python to c++, 3d models that would take 10 minutes to import in Blender went down to 40 seconds. 40 seconds is still a bit much, but that was timed from: Pressing the import button in Blender -> Seeing the rendered result in Blender.
33:00 - that's my reaction whenever I do coding for fun in a 10+-years-old laptop versus coding Java for a paying job in a 2019 laptop. How IntelliJ users accept a build running for minutes or tests running for seconds is beyond my comprehension.
Actually, he said the stream officially started 10 minutes before he said it again in this video, so the stream started officially twice and now my life has no sense 😢
I skimmed throught the codebase, "when you said you're just putting the pixels data into the memory on docs", i saw how, you actually pulling the canvas object data and pixels data in the vc.js and rendering it by calling std functions in javascript
I don't know why most languages don't use a string view as the default string type, but they really should. When you're parsing the obj file you really prove that they're the best way to handle strings. I would've thought with all of the changes that they've made to C++ over the past 25 years that at some point they would've had the foresight to make such a change. They've even introduced actual breaking changes a couple of times over the past 15 years, and yet still, no default string view. Only questions I have at this point is, what are your thoughts on quoting strings? Should a programming language use only one quote type for everything, or like C, should it use " for strings and ' for characters? Since I'm still bikeshedding my own language, I could always change it, but I've got " for F-strings and characters that use escapes, and ' for literal string and character literals.
why is C the only thing some people are talking about as if dissecting the textual contents of a 3D model with any other language is any different or less interesting
Finally C is back
Was waiting to C this
fuck JavaScript
C99 > C3 :-)
@@theevilcottonballno
Back again
> "I'm kind of like reverse engineering the format"
> has the spec pulled up in browser
not the spec, wikipedia page about the spec
@@alt-art not the wiki, led screen displaying pixels
He is forwards engineering it, or as I call it: He is reverse reverse engineering it.
I also wrote a similar program for a software renderer project I was working on; my version was not good enough to work on different obj files. So this is a good learning experience, thanks.
Just for those who are interested in Blender, in the upper right hand corner of the 3D view (where the Penger model was displayed) there is a row of 4 circular radio buttons. You use them to select the display mode. The reason you didn't see any materials is because the display mode was set to "solid color," which is normally plain grey. Clicking on the next button to the right will put it in a mode that will display the material on the model (assuming that there is a light in the scene).
btw, i named penger
Stupid name with cute belly
legend
Did you use the C3 word breeder?
it never ceases to amaze me how long it takes for java tools to do anything. even building "Hello world" with gradle can take half a minute
Gradle in particular is amazing. I tried it a few years ago simply and only because I wanted to try a different build system for the one time in twenty years I've gone to write any Java, and I couldn't believe how unfast it was. I fully expected to find some sort of config error or other fuckup on my part, but never did. Not touching Gradle again if my life depends on it.
I like gradle but have always felt more natural in maven 😊
I'm compiling AOSP for the first time, can you tell me how long it will take? It's been running for some time.
@@doomcrimson1680 From my experience on a good AWS server it took like from 4 to 8 hours for the first time but then it will recompile only the parts that change
@@hedlund Gradle used to be relatively fast up to versions around 2.x, maybe 3.x... but it kind of grew to be the monster it is now over time (I used gradle since back when it was 2.10 for Minecraft mod development). That said, if you truly are building a simple "hello world" with minimal or no dependencies,, after the first run (where it downloads a lot of stuff, but so does maven) it is in fact still fast (an old version of decompiled Minecraft with gradle 8.3 takes a few seconds to build after changing some code on my PC, and that includes building complete runnable fat jar). Real world projects just tend to have large dependency trees, have massive amount of code and just do a lot of stuff during build. Honestly even gradle java builds are not that slow compared to an average C++ build.
this dude is so cracked it's unreal.
Mr Tsoding I love you thumbnails.
Penger is so cute! What a wholesome community.
Can’t tell you how long I’ve been waiting for this
LETS GOOO! C IS STILL "THE BEST LANGUAGE"
C is is the worst programming language except for all of the other programming language which have been tried.
@@theevilcottonballspoken like Churchill
@@vaolin1703 Churchill is one of the best programmers he even had official correspondence from Alan Turing.
In. order to view textures. of. the models in Blender, you'll have to either switch to the Render mode or Preview(Look Dev) mode by holding "Z"
Oh wow I didn't know about your library. I was looking for some examples of some rasterizing algorithms around a year ago but couldn't find something good that wasn't extremely overengineered. Ended up writing most of them myself but it was a pain. If I knew about your library it would've been a lot easier.
Glad to see I'm not the only one that doesn't understand what the hell means 'legacy' in some contexts. Backward compatibility?
Думал, что tsoding это транслитерация неудачной транслитерации, типа coding->цодинг->tsoding, а оказалось что у этого этимология вообще другая)
Какая?
@@sakurako-omuroo он на каком-то стриме говорил что его ник это сокращение от turing soding
@@jkasinowe понял
@@jkasinowe да
я тоже так думал ахаха
i wish i was good enough at programming to understand and follow along with your videos
You can see a rare phenomenon: Tsoding is navigating through directories using a mouse!
Nice. Useful code and useful deep dive to accompany the code. Like.
penger reminds me of pokey the penguin, a brilliant web comic
At 33:18 this is exactly the performance we got when translating python to c++, 3d models that would take 10 minutes to import in Blender went down to 40 seconds. 40 seconds is still a bit much, but that was timed from: Pressing the import button in Blender -> Seeing the rendered result in Blender.
That teapot is breaking my brain.
33:00 - that's my reaction whenever I do coding for fun in a 10+-years-old laptop versus coding Java for a paying job in a 2019 laptop. How IntelliJ users accept a build running for minutes or tests running for seconds is beyond my comprehension.
Because it just works, and because it's actually a fully featured ide. It's nice to use a completely polished product.
the speed at which he develops is actually insane
got so excited when i saw new commits to the repo couldn't wait man
Actually, he said the stream officially started 10 minutes before he said it again in this video, so the stream started officially twice and now my life has no sense 😢
C is back!
Penger means "money" in Norwegian,,, I love them.
new feature, new feature, new feature
tsodinPenger
i would really like to see implementation of some rudimentary lighting
he bacc with olivecc
Tsoding make a game engine out of it
🐧
(too smol PepeHands)
Blender did recognize your material, you just weren't in material view or render view.
C forever
Yes! please! Python is more annoying than just plain C.
Waow what amazing work my friend I would love to see it competes against something like LVGL and work on embedded platforms like pi Pico
I skimmed throught the codebase, "when you said you're just putting the pixels data into the memory on docs", i saw how, you actually pulling the canvas object data and pixels data in the vc.js and rendering it by calling std functions in javascript
My hero!
I don't know why most languages don't use a string view as the default string type, but they really should. When you're parsing the obj file you really prove that they're the best way to handle strings. I would've thought with all of the changes that they've made to C++ over the past 25 years that at some point they would've had the foresight to make such a change. They've even introduced actual breaking changes a couple of times over the past 15 years, and yet still, no default string view.
Only questions I have at this point is, what are your thoughts on quoting strings? Should a programming language use only one quote type for everything, or like C, should it use " for strings and ' for characters? Since I'm still bikeshedding my own language, I could always change it, but I've got " for F-strings and characters that use escapes, and ' for literal string and character literals.
That was pretty Penger
33:00 giga based take incoming
BLUD uses blender for video editing !!!!
what do you think about AssemblyScript?
I would like to know how you zoom in/out at certain times, I have limited vision and I found it very useful. I use Windows.
Doubt windows has something like that but u can do it with ctrl alt mouse wheel on proper os
I there's one for windows called zoomIt or something like that
It is a project in his github called boomer, he made it himself, dunno if it works under windows though.
Penger your mom's banger what 😭
tsodimPenger
What Emacs theme do you use?
But what is wrong with wanting to make some money using your skills?
Great ❤❤❤❤❤❤❤
I want C
then C you shall see.
what about D?
@@ismbks bad tooling + gc
he became based again.
Program in DOSBOX!!!!
33:25 i wonder if chaining together c programs using pipes would be faster on the back end than running node for a single page app…
woot
c monk is back
render penger n blender? i hardly know her
14:42 that is vertex/texture/normal indices for a single point/vertex
45:45 48:14
@@H3llsHero sorry i did not watch the whole video
What font is Tsoding using in his terminal ?
Victor Mono
@@zyhru Thanks a lot, but I don't think its Victor Mono, the "L" is different here.
bro just sometimes speaks german lol🇩🇪🇩🇪
😶🌫
.OBJ anyone...? owo
why is C the only thing some people are talking about as if dissecting the textual contents of a 3D model with any other language is any different or less interesting
baby duck syndrome
🤍
6th comment
3RD
I'm still a trash dev but 11:20 got a 270° offset for the handle and spout instead of 180°.
4th to comment
First to comment
olive.c's back, baby!