[QUOTE=JWki;52406000]Yeah my visualization wasn't too interesting either, basically just parsing the input for move commands and building a line mesh out of it. I was kinda proud of how I handled display filtering - as in, letting the user choose to just display infill, or just display top/bottom solid layer, inner/outer perimeter etc, as this was done completely on the GPU. Instead of having a mesh per line group I actually had each vertex contain the information of what group they were in and then passed a list of groups to display to the fragment shader - the group ID would get passed from the vertex to the fragment shader and then I'd discard fragments if they didn't belong to the groups selected to be displayed. This is extensible as well in theory to support user defined groups but I didn't implement that.
Besides from that, it's pretty standard - you can look at individual layers and ranges of layers, nothing special really.
Command streaming was a bit more frustrating eh I mean interesting - it was a bit of messing around with serial ports until I finally had a reliable way of streaming each command, guaranteeing that they were being interpreted by the printer correctly, etc. Lots of fiddling involved. In the end it came down to opening serial ports that printers connect to for read/write, and writing each command individually as ascii text, while async waiting for confirm messages to come in and then continue sending. In theory you can also interleave status poll commands and then parse the replies to display information like bed / head temperatures and stuff.
It was all made a bit more interesting by the fact that it was implemented as a webtool - the backend ran on whatever machine was connected to the printer, in native C++, with a tiny web server on the side that hosted a WebGL app handling all the user interactions and rendering. So essentially you can just open it up in any browser that has WebGL support on a PC in the local network, and you're ready to upload gcode, look at it and print it directly from the tool. I wrote the frontend in C++ as well, using Emscripten to transpile it to JavaScript so I could share a lot of code between frontend and backend, but in hindsight it wouldn't have been the worst idea to just write it in TypeScript.
In practice of course it's not as shiny as it sounds because it's very picky about the flavour of gcode it supports (mainly Slic3r output, with some hacks to make it work for at least one of the flavours Cura supports) and has tons of tiny issues.
What you're doing sounds way more impressive tbh and I feel like you're suffering some sort of impostor syndrome which is completely normal. Give yourself some credit, from what you're posting it seems like you're doing a fine job and you're pulling off some impressive stuff in your personal project as well so don't beat yourself up too much.[/QUOTE]
That's really neat, regardless. Was it some kind of indirect drawing? What you're doing sounds really really useful, and my first attempts at rendering this stuff (in OpenGL, ages ago) barely refined the primitive single-mesh-per-layer bit: I used a mesh per toolpath type. I might borrow your concept, if you don't mind. Command streaming does sound frustrating though, and that sort of stuff used to really irritate me when I did embedded development in the past. We just use pronterface, but that hasn't been updated in ages and it has issues with the newest boards like the Duet and Smoothieboard (which run at high baud rates and clock frequencies, afaik). I like your webtool integration as well, as I had hoped to get mine working like that eventually. GCode interpretation is also rather difficult, as each slicer does things a little differently and then you have to still consider things like firmware type of the Gcode too - I cheated, in my past visualization efforts, and used verbose Gcode output so that I could fairly easily infer what a set of commands were doing.
I have a couple things in my code I'm proud of, especially the removal of that nasty as hell Slic3r method that involved "while(1)", "for(;;)", reckless threading and pointer shenanigans, and goto's to finish the mess. I've tried to make note of sections I'm particularly proud of, so I can mention them if given the chance in a job interview or something. Not sure how that stuff goes, though. I'd buy at least some imposter syndrome being involved: to be an intern going from no C++ experience to where I'm at is a sign of determination and ability to learn on-the-job, if nothing else.
I also can't get [I]too[/I] high and mighty or proud of my work. It stands on the shoulders of giants, and I got much of the algorithmic outline and systemic layout from other projects on github (same is true for all my projects, tbh). I don't think I'm [I]that[/I] great of a programmer for what I've done, but I try to give myself at least a bit of credit so I don't demoralize myself to death haha
I've been working on getting a basic bot into Half-Life 2 Deathmatch. The plugin code that comes with the Source SDK will spawn a bot but the bots won't respawn, and it took me a good hour and a half to actually get the bot to respawn.
Maybe the plugin code from the Source SDK worked in 2006.
[QUOTE=paindoc;52407335]That's really neat, regardless. Was it some kind of indirect drawing? What you're doing sounds really really useful, and my first attempts at rendering this stuff (in OpenGL, ages ago) barely refined the primitive single-mesh-per-layer bit: I used a mesh per toolpath type. I might borrow your concept, if you don't mind. Command streaming does sound frustrating though, and that sort of stuff used to really irritate me when I did embedded development in the past. We just use pronterface, but that hasn't been updated in ages and it has issues with the newest boards like the Duet and Smoothieboard (which run at high baud rates and clock frequencies, afaik). I like your webtool integration as well, as I had hoped to get mine working like that eventually. GCode interpretation is also rather difficult, as each slicer does things a little differently and then you have to still consider things like firmware type of the Gcode too - I cheated, in my past visualization efforts, and used verbose Gcode output so that I could fairly easily infer what a set of commands were doing.
I have a couple things in my code I'm proud of, especially the removal of that nasty as hell Slic3r method that involved "while(1)", "for(;;)", reckless threading and pointer shenanigans, and goto's to finish the mess. I've tried to make note of sections I'm particularly proud of, so I can mention them if given the chance in a job interview or something. Not sure how that stuff goes, though. I'd buy at least some imposter syndrome being involved: to be an intern going from no C++ experience to where I'm at is a sign of determination and ability to learn on-the-job, if nothing else.
I also can't get [I]too[/I] high and mighty or proud of my work. It stands on the shoulders of giants, and I got much of the algorithmic outline and systemic layout from other projects on github (same is true for all my projects, tbh). I don't think I'm [I]that[/I] great of a programmer for what I've done, but I try to give myself at least a bit of credit so I don't demoralize myself to death haha[/QUOTE]
Nah no indirect drawing or anything, it was just WebGL (1) after all.
Feel free to borrow anything.
I evaluated pronterface but yeah it has some issues not only on the compat side but also it didn't have all the features we wanted.
How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url][/QUOTE]
like butter for me
Silky smooth 60fps. gtx1070 and i7 4770
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
It varies between 3 and 25 FPS.
You also don't seem to be catching key events properly, so when I use WASD to move it opens fulltext search.
[editline]edit[/editline] Maybe put a cap on camera step distance, so that it doesn't fly out of them map when there's a huge spike in frame time.
[editline]edit[/editline] It seems to think a key is kept held if it loses focus to the search input. I don't know if that's a Firefox issue or preventable on your end.
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Pretty smooth on my MacBook Pro on Chrome. Doesn't work in the Safari browser though, I get in the console:
Shader compilation error:
ERROR: 0:? : '' : syntax error
compileShader — facepunch.webgame.js:3507
[editline]28th June 2017[/editline]
Ok, so it didn't work on the stable release of Safari, but it "mostly" works on Safari Technology Preview, on the technology preview I get this:
[img]http://i.imgur.com/e1EX9SU.png[/img]
Interesting low resolution wireframe on part of the skybox
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Smooth 120fps, windows 10, r9 390
[QUOTE=djjkxbox;52411733]Pretty smooth on my MacBook Pro on Chrome. Doesn't work in the Safari browser though, I get in the console:
Shader compilation error:
ERROR: 0:? : '' : syntax error
compileShader — facepunch.webgame.js:3507
[editline]28th June 2017[/editline]
Ok, so it didn't work on the stable release of Safari, but it "mostly" works on Safari Technology Preview, on the technology preview I get this:
[img]http://i.imgur.com/e1EX9SU.png[/img]
Interesting low resolution wireframe on part of the skybox[/QUOTE]
That's a weird artifact, I think it's caused by an oversight on my part where it tries to read from and write to the same frame buffer if there's water in the skybox, this map should work better:
[url]https://metapyziks.github.io/SourceUtils/maps/de_overpass/[/url]
[editline]28th June 2017[/editline]
[QUOTE=Tamschi;52411717]It varies between 3 and 25 FPS.
You also don't seem to be catching key events properly, so when I use WASD to move it opens fulltext search.
[editline]edit[/editline] Maybe put a cap on camera step distance, so that it doesn't fly out of them map when there's a huge spike in frame time.
[editline]edit[/editline] It seems to think a key is kept held if it loses focus to the search input. I don't know if that's a Firefox issue or preventable on your end.[/QUOTE]
Thanks for pointing that out, I'll do some more Firefox testing to make it behave properly there.
[QUOTE=Ziks;52411855]Thanks for pointing that out, I'll do some more Firefox testing to make it behave properly there.[/QUOTE]
Note that it's not standard behaviour. I enabled [URL="http://kb.mozillazine.org/Accessibility.typeaheadfind"]accessibility.typeaheadfind[/URL].
[QUOTE=Ziks;52411855]That's a weird artifact, I think it's caused by an oversight on my part where it tries to read from and write to the same frame buffer if there's water in the skybox, this map should work better:
[url]https://metapyziks.github.io/SourceUtils/maps/de_overpass/[/url]
[/QUOTE]
You're right, that one works fine
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
20-30 FPS on a Surface Pro 2017 m3.
There's some weird artifacting going on. RX480 & R7 1700, Firefox 54.0, Radeon 17.6.2, Win10
[img]http://i.imgur.com/p8gRS7Y.png[/img]
[QUOTE=Ziks;52411855] That's a weird artifact... [/QUOTE]
60 fps on both, but it doesn't seem to be loading all the details unless that's just how it is. 980ti, i7 5820k
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Doesn't work on my Axon 7, some of the geometry loads (sometimes white, sometimes textured) then freezes.
[QUOTE=Ziks;52411557]How well does this run for you guys?[/QUOTE]
Absolutely fantastic, not always 60FPS for me but still pretty damn smooth. I assume my GTX 970 is doing most of the heavy lifting, since my CPU is an AMD FX 6120(?) (always forget those pesky last numbers). No issues here, besides the low-detail textures that I assume are part of the demo.
Great work!
--
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Works fine for me!
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Thinkpad T420, i5 2450m, Intel HD 3000, Firefox/Linux
[editline]29th June 2017[/editline]
12-25 FPS
It has occasional hiccups but all in all it works okay
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Takes a bit to load but that was expected
I can fly around smoothly
60 FPS, Firefox, MacBook Pro (Late 2013), macOS Sierra (Version 10.12.4, Build 16E195)
First-gen surface pro 4, Chrome:
[QUOTE][IMG]http://i.imgur.com/z2DuaRw.jpg[/IMG][/QUOTE]
Aand that's the end of my CG stuff, time's up. At least I managed to sneak in some cheapstake water physics :v:
[media]https://youtu.be/zhnGKDZ1Rp0[/media]
Really wish I had time to implement a deferred renderer tho, get some of that cool water depth effects and stuff.
Got access to Quake Champions, decided to dig trough the files a little bit. I am disappointed it's not id Tech 6 but Saber 3D engine instead :(
Decided to dig trough the .pak files, but the format seems to be unfamiliar. There seem to be multiple different types of them, i counted at least 3. Only parts of a single .pak file seem to be compressed.
[thumb]http://carp.tk/$/pakager_2017-06-29_19-43-52.png[/thumb]
[thumb]http://carp.tk/$/pakager_2017-06-29_19-48-52.png[/thumb]
[editline][/editline]
Bonus
[IMG]http://carp.tk/$/pakager_2017-06-29_19-54-35.png[/IMG]
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
Starting position, Skylake ULV (i7-6600[B]U[/B] using integrated graphics on LPDDR3-1866), high performance mode, system otherwise idle (besides bloatware):
Latest Chrome on Windows - ~17FPS @ 2560x1440, ~26FPS @ 1920x1080
Latest Chrome on Linux - ~23FPS @ 2560x1440, ~36FPS @ 1920x1080
You're not handling DPI scaling here - on a browser/system configured for a high-DPI screen, you render at the given virtual resolution (which the browser then upscales to physical resolution).
Working on terrain deformation still.
[t]http://i.imgur.com/J24kUwT.png[/t]
Trying to get as much work done as possible before July 1st, but my job keeps getting in the way.
I've got most of the fundamentals down. I've got it fairly optimized. Currently abusing the shit out of pointers so I can just modify the location of a point on the mesh and have all vertices and adjacent triangles 'update'. Every point knows of its adjacent triangles so that I can limit normal/tangent/bitangent recalculations to the bare minimum, and then upload the bare minimum to the gpu, as opposed to modifying only a few points and recalculating the entire mesh and then reuploading the entire mesh.
I tried including a few basic 'brush' types, the difference being the attenuation modes: linear, squared, cubed, and flat.
Next to implement editing multiple meshes simultaneously.
[QUOTE=Sam Za Nemesis;52414914]I've decided to make a DMG dithering shader based on the concept of a Bayer matrix for a friend's game, I've had prototyped it in my project as I had no access to his codebase, you can easily configure the 4 color pallete
[t]https://cdn.discordapp.com/attachments/263886545495261184/330046099400425475/bilde.png[/t
[t]https://cdn.discordapp.com/attachments/164551817575792640/330042274870329354/bilde.png[/t
[t]https://cdn.discordapp.com/attachments/164551817575792640/330043007854444554/bilde.png[/t[/QUOTE]
gameboyyyyy
[QUOTE=Ziks;52411557]How well does this run for you guys? You'll need to leave it to load for a bit, I'll add a loading bar soon.
[url]https://metapyziks.github.io/SourceUtils/maps/de_cbble/[/url]
Oh also you can press F to go fullscreen[/QUOTE]
was curious if i could get this running on my iphone (7+, running the iOS 11 beta, safari) and it would crash for this map
[QUOTE=Ziks;52411855]That's a weird artifact, I think it's caused by an oversight on my part where it tries to read from and write to the same frame buffer if there's water in the skybox, this map should work better:
[url]https://metapyziks.github.io/SourceUtils/maps/de_overpass/[/url]
[/QUOTE]
but work perfectly for this map (although I can't interact with it)
[t]https://dl.dropboxusercontent.com/u/5168294/screencaps/Photo%20Jun%2029%2C%207%2058%2044%20PM.png[/t]
it also gets my iphone a little hot
Why the hell do people keep writing big UI-heavy apps in Java? The fact that I can tell it's Java within seconds of just looking at it is pretty indicative that something is [i]severely[/i] wrong with the libraries that are available. Not to mention the asinine memory usage and noticable GC pauses, which would be the other sign in case anyone ever wrote a real UI toolkit for it.
I'm trying to evaluate switching over to CLion, but I'm getting kinda put off by how half my UI is rendering without subpixel AA while the other half does, and the text that does get it doesn't respect my fucking OS TrueType settings, so if I pull it onto one of my BGR screens it's extremely painful to read. Oh and the font hinting is broken, so that doesn't help at all.
Then it doesn't even support anything but CMake out of the box, so it's basically telling me to go fuck myself. Doesn't seem to be possible to wrangle it into anything else without plugins either, so I think I might just abandon this idea entirely.
Sorry, you need to Log In to post a reply to this thread.