OpenGL Tutorial 52: Render to Cube Map Texture

  Рет қаралды 63,670

ThinMatrix

ThinMatrix

Күн бұрын

Implementing dynamic environment mapping this week by rendering our scene to a cube map texture, allowing for our reflective objects to reflect our in-game scene!
Try out the runnable jar!
drive.google.com/drive/folder...
GTA V article:
www.adriancourreges.com/blog/2...
DOOM article:
www.adriancourreges.com/blog/2...
Starting Code:
www.dropbox.com/sh/s4jqjxxj15...
Finished Code:
www.dropbox.com/sh/l2i0ai48i5...
PNGDecoder Download:
drive.google.com/file/d/0B4_S...
Setting up a LWJGL project tutorial (in case you've forgotten!):
• Setting up a LWJGL Pro...
Cube Map Tutorial:
• OpenGL 3D Game Tutoria...
Environment Mapping Tutorial:
• OpenGL Tutorial 51: Cu...
FBO tutorial:
• OpenGL Water Tutorial ...
Support the series on Patreon: / thinmatrix
Facebook Page: / thinmatrix
Twitter: / thinmatrix
Tumblr: / thinmatrix
Instagram: / thin_matrix
Check out my game on IndieDB: www.indiedb.com/games/equilinox
End of video music- Kai Engel, "Waking Stars":
freemusicarchive.org/music/Kai...

Пікірлер: 144
@ThinMatrix
@ThinMatrix 7 жыл бұрын
The next episode of this tutorial series is the first in a mini-series of OpenGL animation tutorials: kzbin.info/www/bejne/nGSmo2uPrZh6faM
@gykonik
@gykonik 6 жыл бұрын
ibb.co/m7QbGn any ideas? :s
@sanis_kamis
@sanis_kamis 7 жыл бұрын
PLEASE DONT EVER STOP, IM LOVING THESE TUTORIALS :) great work thank you for hours of fun by making this nice game engine
@pengie_
@pengie_ 7 жыл бұрын
You have been such an inspiration to me I've always wanted to make a game with lwjgl and opengl and I've attempted but failed but when I found your tutorials I felt like I was actually going somewhere and I was learning because you explain everything so well with visuals which I'm a visual person so that is why learning out of the book is very hard for me but you made that possible!
@ThePinokhio
@ThePinokhio 7 жыл бұрын
Your understanding of this is very difficult concept is very admirable.
@arhaisme
@arhaisme 7 жыл бұрын
You can use gl_Layer and geometry shaders to make a single draw call when creating the cubemap texture.
@ben_car_8115
@ben_car_8115 Жыл бұрын
You are a god! I have been looking for tutorials on this and have had a surprisingly difficult time. After finding your channel 8 years ago I knew as soon as I found this video by you it would all be okay. Thank you for your public service! You just helped me finished my Masters!
@alfredoanderson
@alfredoanderson 5 жыл бұрын
Super cool tutorial Karl, thanks!!! And thanks for sharing the beautiful socuwan scene also, you are very generous man!!!
@rhodate
@rhodate 7 жыл бұрын
Thanks man. Awesome video. Keep up the good work
@vamidicreations
@vamidicreations 4 жыл бұрын
Amazing tutorial! I have a question regarding Image based lighting which is the same technique in a sense ,how would you "block" the light of the reflection object. I want to have an directional light that acts as the sun and combine it. I think the answer is that you "discard" the image based lighting and do a cubemap reflection with rendering of the scene with all the things you mentioned and then let the reflected object act on different lights (which is in a different render pass). That way you see in the reflection the blocked object and almost no light onto the reflected object. Is this correct?
@jackdavenport5011
@jackdavenport5011 5 жыл бұрын
Since the cubemap is only being rendered once when the game launches, couldn't you draw the scene in full detail, so you have a high detail environment map with only a small amount of time at the beginning of the game to render it?
@LuckyPhenixTV
@LuckyPhenixTV 7 жыл бұрын
Does someone in the comments know a good example for changing the cursor with the LWJGL. I have been looking in many forums but they did not really explain their programs well enough. Thin already did this in his Equilinox series and I wonder how it works.
@scravengerx
@scravengerx 7 жыл бұрын
Will you cover about the Lightning technique direct and volumetric , and color tone or color correction , that make the texture and atmosphere feel warm and bright just like in fallout 4
@qendolin
@qendolin 7 жыл бұрын
Can you do a tutorial about parallax occlusion mapping or ambient occlusion?
@arsnakehert
@arsnakehert 2 жыл бұрын
Hahah, came here to your video precisely while reading the GTA V rendering article
@Alex2772
@Alex2772 7 жыл бұрын
Hello ThinMatrix! Amazing video! Do you know how to make SSAO effect? I have made one but there're atrifacts, i spent more than one week and i need for your help.
@nikolaynikolov4086
@nikolaynikolov4086 7 жыл бұрын
The LWJGL 3.0 has replaced DIsplay with a GLFW api. Will you be updating your code to 3.0?
@AssassinGrudge
@AssassinGrudge 7 жыл бұрын
how can i fuse the pre-made cube maps and the generated ones i mean in 0:17 on your video i want that dragon to be reflected on the teapot along with the environment map. i tryed doing this and t's not happening i only get the dragon reflected on the teapot but with black background like my camera can't see the orginal cubemap
@AssassinGrudge
@AssassinGrudge 7 жыл бұрын
EDIT : Never mind i solve the problem here is how in case any one had the same issue : so simply the the Static Cube map aka the original sky box was rendered in default Frame buffer object and the new dynamic one which contain the objects that i want to reflect is rendered inside in an other Framebuffer. what you need is to render the sky box twise one in the begining and one after binding the new frame buffer. Note that i'm using Geomtry shader so i can redner the 6 faces in one pass
@aurelienpendragon1600
@aurelienpendragon1600 7 жыл бұрын
Great tutorial ! It would be helpful introducing animations in a next one !
@insync8234
@insync8234 6 жыл бұрын
Pngdecoder class is already present in the slick utils jar
@depthx9784
@depthx9784 2 жыл бұрын
Excelente videotutorial, muchas gracias 👍👍!!
@deathmock5
@deathmock5 7 жыл бұрын
Is there any good tutorials that you can recommend for 2d game development using opengl? iv tried a few but when it gets to texture loading. alot of code does not work correctly. or is severely outdated.
@CRGB-ec3vu
@CRGB-ec3vu 7 жыл бұрын
use LibGDX it uses lwjgl as backend
@thesecondantagoniser4008
@thesecondantagoniser4008 5 жыл бұрын
Why are you using java? Isn't c++ or C faster for rendering graphics?
@TheYuederman
@TheYuederman 7 жыл бұрын
Awesome tutorial, it will be nice if you could make a video about component based architecture, like the one you implemented in Socuwan. I have been thinking about it and I still can't understand how it works all together. Your videos are really good, keep it going and thank you.
@fredrikt8639
@fredrikt8639 7 жыл бұрын
hello @thinmatrix can u tell me why this is happening when i try to run the code. "version '140' is not supported" ?
@djpeknuk
@djpeknuk 7 жыл бұрын
Have you tried adding to engine/utils/DisplayManager.java in createDisplay method this: ContextAttribs attribs = new ContextAttribs(3,3) .withForwardCompatible(true) .withProfileCore(true); and also you need to add attribs to Display.create() method: Display.create(new PixelFormat().withDepthBits(24).withSamples(4), attribs); for me it worked.
@pengie_
@pengie_ 7 жыл бұрын
Also were is the multi-player tutorials going to come out
@sisilicon14
@sisilicon14 7 жыл бұрын
I've hypothesized a method of increasing rendering speed of the cubemap. Instead of rendering the scene to each individual texture of the cubemap six times, you can instead warp the entire scene around a camera point, render once as an ordered texture2d and then render parts of this texture to individual parts of the cubemap. That way you do six times less scene renders than before. Any questions?
@gykonik
@gykonik 6 жыл бұрын
yes i would have a question... :D
@fishingbadboys
@fishingbadboys 7 жыл бұрын
can you make a tutorial about rendering text particles for info hovering above entities for example
@Fartuess
@Fartuess 7 жыл бұрын
Just like standard text rendering, but with some tranform and view matrix multiplication.
@casperstudios7416
@casperstudios7416 7 жыл бұрын
Can I use those models in my own game??
@r8Rusoski
@r8Rusoski 7 жыл бұрын
Thank you very much! :D
@redd_cat
@redd_cat 7 жыл бұрын
In the package from the "Finished code" link, I am experiencing an error just starting it. The below code in the MyFile class is returning null. public InputStream getInputStream() { return Class.class.getResourceAsStream(path); } This is called when the game is loading normal.png. Did I set up the project incorrectly, if so how can I fix it?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
Have a look in your "bin" folder - in there should be quite a few folders (16 in total), one of which should be "res". Is that the case for you?
@redd_cat
@redd_cat 7 жыл бұрын
Okay, ignore my question lol. All I had to do was add a source folder in the java build path. Thanks for your help anyway!
@mindstreamx
@mindstreamx 7 жыл бұрын
+ThinMatrix Is this tutorial complete? I see there is no further videos after this one.
@ThinMatrix
@ThinMatrix 7 жыл бұрын
The next tutorial is the first in a mini series about animation: kzbin.info/www/bejne/nGSmo2uPrZh6faM
@sjakedude
@sjakedude 7 жыл бұрын
Multiplayer functionality?
@kingbluesapphire191
@kingbluesapphire191 7 жыл бұрын
How do you change/set an entities position with the new scene renderer
@kingbluesapphire191
@kingbluesapphire191 7 жыл бұрын
When i use Window's 3D builder it doesn't work? it gives "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1"
@ThinMatrix
@ThinMatrix 7 жыл бұрын
The models need to be exported in a certain way so that the OBJ file is able to be read by the parser. I'm using the same parser that I showed back in episode 10, and in episode 9 I showed the setting that need to be used when exporting the model from Blender. I'm not sure about exporting from Windows 3D Builder though, I've never used it myself. There's no way to move entities around in the engine at the moment - I designed it specifically for this tutorial and knew that it would only need to render a static pre-set scene. Plus that meant I could create the scene in Blender and export it, rather than having to hard-code the positions of all the entities somewhere which would have taken ages. It shouldn't be too hard to allow the entities to be re-positioned though, if you just give them each a transformation and apply a model matrix in the vertex shader.
@joshbonney9624
@joshbonney9624 7 жыл бұрын
So, are there going to be any more tutorials or is this the last one? Or have I completely missed some?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
This was not the last one, but it is the latest one currently. The reason there hasn't been a tutorial for a while is because I've been working on an animation tutorial series, the first episode of which will be out next weekend :) You can actually already download the animation tutorial code from the description of my latest devlog video if you want.
@joshbonney9624
@joshbonney9624 7 жыл бұрын
Such a big subject, good news indeed! Continue on good sir.
@mons2918
@mons2918 7 жыл бұрын
How does he place all the entities to build the town?
@jackdavenport5011
@jackdavenport5011 7 жыл бұрын
He probably uses debug mode in eclipse, so he can hot-swap code and update it without closing and restarting the game.
@Homelleon
@Homelleon 7 жыл бұрын
Wow, It works! But unfortunately when I tried it on box - it looked strange. The image of environment Map was flipped upside down and when I move camera, image moves with that and I can clearly see borders of environment Map.
@ThinMatrix
@ThinMatrix 7 жыл бұрын
Hmm, could you show me a screenshot of the problem please? And did everything work fine when you used the sphere model?
@Homelleon
@Homelleon 7 жыл бұрын
Well, I can see borders on other objects too. s015.radikal.ru/i332/1701/6f/d96ea15588e6.jpg
@gykonik
@gykonik 6 жыл бұрын
Same problem here... Did you solve it?
@fishingbadboys
@fishingbadboys 7 жыл бұрын
Will you make a tutorial about saving game data like entities and player position
@fishingbadboys
@fishingbadboys 7 жыл бұрын
And about chunk renderering for game optimazations
@learnsoftwareengineering6975
@learnsoftwareengineering6975 7 жыл бұрын
IN a game where terrain is unchanging, the only things you need to save is game state (what chests have been looted, or what loot was left, what events have been completed etc) in most cases this can be a single flags variable (a bunch of true/false) values. Then you just save things like inventories, and positions. IT's not hard, just keep track of what has happened, where things are (that are relevant) save that to a file in a format of your choice. That's like freshman SE material. A lot of people I know are now using JSON to save data, personally I still prefer binary data files, saves and loads a lot faster.
@CyberMew
@CyberMew 2 жыл бұрын
Dang, I wished this were available 9 years ago when I started out..
@jonathonderr7685
@jonathonderr7685 7 жыл бұрын
Wait...woah, is this how you create 3d shadows?
@jonathonderr7685
@jonathonderr7685 7 жыл бұрын
I'm trying to import the starter code and resources into eclipse. However it is unable to create the textures, and returns this error: java.lang.NullPointerException at de.matthiasmann.twl.utils.PNGDecoder.readFully(PNGDecoder.java:802) at de.matthiasmann.twl.utils.PNGDecoder.(PNGDecoder.java:112) at textures.TextureUtils.decodeTextureFile(TextureUtils.java:60) at textures.TextureBuilder.create(TextureBuilder.java:19) at water.WaterRenderer.(WaterRenderer.java:35) at renderEngine.RenderEngine.init(RenderEngine.java:39) at main.MainApp.main(MainApp.java:17) Tried to load texture normal.png , didn't work
@ThinMatrix
@ThinMatrix 7 жыл бұрын
That just means that I couldn't find the file. Did you make the "Resources" folder a source folder as shown at 4:48? Maybe just refresh the project once again after doing that. If you then have a look in your project's folder, in the "bin" folder there should be 16 folders, one of which should be "res", and in that folder you should be able to find "normal.png", "waterDUDV.png" and a folder called "Socuwan Scene".
@jonathonderr7685
@jonathonderr7685 7 жыл бұрын
Haha, I had relabelled the res folder, my bad! Thank you!
@r8Rusoski
@r8Rusoski 7 жыл бұрын
Hi there! I would like to know if could you please make a tutorial about how to load multiple textures on a model please?
@fishingbadboys
@fishingbadboys 7 жыл бұрын
r8Rusoski you could compile all the images to one image and just reposition the uvmapped positions in blender
@r8Rusoski
@r8Rusoski 7 жыл бұрын
Yes, I've done that, indeed it works, the only problem is that the whole tree model is rendered as doublesided which means less performance, because leaves has to be rendered as double sided, but the bark should be rendered as one sided.
@casperstudios7416
@casperstudios7416 7 жыл бұрын
r8Rusoski split the model into two models
@MohammedPlaysMC
@MohammedPlaysMC 7 жыл бұрын
This looks good but is it worth it and could you do such things as mirrors with this
@ThinMatrix
@ThinMatrix 7 жыл бұрын
Well as I talked about in the videos there are ways to do it that aren't very expensive at all if you have a fairly static environment, and the way that I implemented it for this particular scene was extremely cheap because the environment map is only rendered once when the game loads, and then the reflection just requires one reflect() calculation and one cube map texture sample in the shaders. So in this scenario it's actually a very cheap effect to implement, much cheaper than shadows or water etc. For mirrors it's probably better to use the method that we used for the water reflections. When doing cube map reflections they are only 100% correct for a single point in the world, the point where the environment map is rendered from (I talked a bit about this in the tutorial). So for most of the model the reflections are actually a bit off, but it doesn't matter because the reflections are so distorted on the model. For a mirror though the reflections wouldn't be distorted, and these issues could be quite obvious. Besides, using the method we used with water you'd only need to render the scene one extra time per frame, whereas environment maps require the scene to be rendered 6 extra times per frame (if you want the reflections to be dynamic).
@MohammedPlaysMC
@MohammedPlaysMC 7 жыл бұрын
ThinMatrix Hummn that would be a good idea using the water reflection and setting it to a high quality but this would be resource intensive maybe a distorted mirror is easier and cheaper and might even have a better look
@ThinMatrix
@ThinMatrix 7 жыл бұрын
But even for a distorted mirror, use the flat plane reflection technique that we used for the water. As I said, for that you just need to render the scene one extra time, but for dynamic reflections using cube maps you'd need to render the scene 6 extra times! And the reflections wouldn't be distorted on the mirror when using the cube-map method - they'd be very clear, but would just be partially incorrect. The reflections on the 3D models in the video are only distorted because the model's surface isn't flat like a mirror. I'd recommend just using the same reflection technique that we used for the water which involved rendering the scene to a reflection texture, but only render the nearest and most important objects in the scene and render them at very low quality (not shadows, no normal maps, no complex lighting, maybe even use simplified models/ textures) so that the render cost is very cheap. use a low resolution FBO as well. Then you could do a cheap blur of the reflection texture to hide how low quality it is, and apply it to the mirror.
@MohammedPlaysMC
@MohammedPlaysMC 7 жыл бұрын
ThinMatrix Thanks yh I think I'll give that ago as it's a small feature but adds quite abit of effect
@icerise2128
@icerise2128 7 жыл бұрын
Nice :D
@gykonik
@gykonik 6 жыл бұрын
ibb.co/m7QbGn Does anyone have any ideas how I could fix his?
@johnpollock4124
@johnpollock4124 7 жыл бұрын
guys i downloaded the code but when I ran it all i get is a white screen . help!! (I know that the white screen is because of the prepare function() which clears the screen to white but why is nothing drawing?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
If you download the jar file from the description and try running that does it work?
@johnpollock4124
@johnpollock4124 7 жыл бұрын
yes it works when i download the jar, is there a problem with the way ive organized the downloaded code? I put resources(source folder),src(source folder),Engine(source folder). and linked all the libraries. ive tested a few things. its definitely loading all the entities, its just not drawing them on the screen. is it because the gl11.gldrawelements(something) function not working?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
Do you get any error at all when running the code?
@johnpollock4124
@johnpollock4124 7 жыл бұрын
no. thats the wierd part.
@johnpollock4124
@johnpollock4124 7 жыл бұрын
at first i thought the library wasnt drawing it. so i made another class (in the same project) and drew a simple rectangle using opengl gl11.begin and glvertex2f functions. this means that the lwjgl is working for drawing a rectangle using the old method.
@fishingbadboys
@fishingbadboys 7 жыл бұрын
I sunndely dont see all of my guis anymore what can i do??
@fishingbadboys
@fishingbadboys 7 жыл бұрын
nevemind
@nytstarletgames8036
@nytstarletgames8036 7 жыл бұрын
so will this series ever pick back up?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
The next episode is here: kzbin.info/www/bejne/nGSmo2uPrZh6faM I just gave it a different name because there are going to be a few animation tutorials so they'll be in their own mini-series. The next animation tutorial will be out in the next few days.
@Mattparks5855
@Mattparks5855 7 жыл бұрын
That works very nicely. I think if use that scene and add some deferred shading and shadows, it would look way better. Also if you staged your shadow maps into three (or more) sizes that are rendered from different distances and qualities you would make the shadows look better over a longer distance. For anyone looking for another engine example you can check out my engine based off of these tutorials. I added in a load of comments and have based the engine around modularity: github.com/EquilibriumGames/Flounder-Engine
@Romejanic
@Romejanic 7 жыл бұрын
If you do it right, you can get very good looking reflections with things like shadows, per pixel lighting and other things. You just have to keep in mind that the scene is being rendered six times every frame and you need to think about how that will affect performance.
@gykonik
@gykonik 6 жыл бұрын
Could you explain how you setup the engine?
@Teku_Guy
@Teku_Guy 7 жыл бұрын
animations tutorial next please
@zentroftw853
@zentroftw853 7 жыл бұрын
Gustavo Muratalla I only managed to parse in a static model from a collada file.
@Teku_Guy
@Teku_Guy 7 жыл бұрын
ZentroFTW you should teach me how. that would be one step closer
@ThinMatrix
@ThinMatrix 7 жыл бұрын
I definitely want to do an animation tutorial at some point, but I'm not experienced enough with animation myself yet to make a tutorial about it I'm afraid. But as soon as I am, I'll make a tutorial about it.
@RoonixDesigns
@RoonixDesigns 7 жыл бұрын
Do you actually copy&paste this answer? Would be pretty clever because i read this question under every video ^^
@Teku_Guy
@Teku_Guy 7 жыл бұрын
ThinMatrix could u just maybe make a video on how u did ur animations
@babylongate
@babylongate 7 жыл бұрын
ThinMatrix , have you by any chance read a book called openGL insight?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
No I haven't, is it good?
@babylongate
@babylongate 7 жыл бұрын
ThinMatrix man, that book i got explains all the basics just like you do in first episodes of your 3d gaming tutorial, i was wondering if you read that and that's how you learned all the basics , even the files he make in the book has the same name as your java files 'gameEngine , mainGameLoop and etr, pls tell me what's your favorite book that you recommend on openGL subject, there got to be a book right?
@aivanosgg2269
@aivanosgg2269 2 жыл бұрын
Human brain is fantastic.
@Doomzyk83
@Doomzyk83 7 жыл бұрын
What about collision detection?
@ThinMatrix
@ThinMatrix 7 жыл бұрын
I'd like to do a tutorial about it one day, but it's a complex topic that I'm very inexperienced with at the moment.
@Fartuess
@Fartuess 7 жыл бұрын
Check out Bullet library. Dunno if it have bindings for Java though.
@casperstudios7416
@casperstudios7416 6 жыл бұрын
I made a basic tutorial; kzbin.info/www/bejne/rIucm5evlKqNeqM
@fishingbadboys
@fishingbadboys 7 жыл бұрын
Could you do a collision detection tutorial?? You once mentioned that it more java related then opengl so it should be more coding than explaining?? It would be a nice tutorial until we get the animation tutorial!
@ThinMatrix
@ThinMatrix 7 жыл бұрын
I'm afraid a collision detection tutorial is even more tricky for me to make than an animation tutorial. Animation is a huge topic, but at least it's all pretty much based on a single basic concept which I'll be teaching. However, for collision detection there are just so many completely different ways of doing it, so many totally different algorithms, and the one that you need to use is completely dependent on what type of game you're making, which is different for everyone. I've also only ever implemented one of these algorithms once for Socuwan, and I never even got that working 100% properly. It still glitched out sometimes, and I had to add in lots of hacky code. And even though collision detection isn't OpenGL related, it involves a huge amount of maths, which would need a lot of explanation. To give you some idea, here's the algorithm that I once implemented: www.peroxide.dk/papers/collision/collision.pdf As you can see, it's not simple at all! So I'm afraid it might be a while before I do a collision detection tutorial :/
@fishingbadboys
@fishingbadboys 7 жыл бұрын
ThinMatrix ow sorry to hear, it's all good though just do animation the a few smaller before you do collision if you want to do it! I've got plenty of time working on a few inplantmitions like achievement guis for example with are very hard because I calculate the size according to the width and the height of the screen so guis sizes are always the same but guitext and their positions are way different so that is gonna be a long time before I figure it out!
@Fartuess
@Fartuess 7 жыл бұрын
Dunno if there are bindings for Java, but check out Bullet Physics Library.
@AdriansNetlis
@AdriansNetlis 7 жыл бұрын
Waiting for local reflections, reflection probes now:D
@Fartuess
@Fartuess 7 жыл бұрын
I'm writing them for my own engine and had some problems in organizing code for rendering to cubemaps. If you want to make reflection probes, then capture multiple cubemaps. Define influence range and attenuation for them. Every frame calculate influence weights of nearby probes and render to texture mixed results of those textures. This will give you reflections without parrallax correction. If you want parrallax correction then take most infleuntial reflection probes, map the cubemap texture onto approximation of surrounding geometry (can be done using depth cubemap and vertex offset) and bake it into temporary cubemap by rendering from slightly changed point of view (offsetted the same amount that camera is offsetted from reflection probe itself). That gives you parrallax corrected cubemaps for your probes. Now blend them in the same way i described in previous paragraph. Thats probably not clear description.There are multiple steps of it. I might try to explain it in more depth if you wish.
@JonyXL44
@JonyXL44 7 жыл бұрын
Hey ThinMatrix it would be nice if you could respond to my question :) I really know how to program in Java, however I have no idea how to use LWJGL. I really like your channel and have been a subscriber for a long time now, so I thought i could just use your Playlist since you can explain quite well. Naturally, I havve to start with the very basics what means I have to watch your first videos. That's why I wanted to ask you whether you think a lot has changed and the things you did in your first tutorials aren't still up to date. Plus, it would be absolutely tremendous if you could tell me about other useful tutorials / books / sources on how to learn lwjgl because you have such experience. I hope you see this comment, of course everyone else is invited to answer! :)
@ThinMatrix
@ThinMatrix 7 жыл бұрын
My tutorials are predominantly OpenGL tutorials, and all the OpenGL concepts I have taught in the tutorials are still completely up to date. There is however a newer version of LWJGL available now, but that only really changes the way you create the display and handle user inputs. I know a few people have followed my tutorials using the newer version of LWJGL because it doesn't really change much. All the OpenGL functions and game dev concepts are of course just the same. There's also nothing wrong with still using LWJGL 2 though if you want - LWJGL 3 only came out of beta earlier this year so it's still very new. I learnt OpenGL from hundreds and hundreds of different online tutorials, articles, and game dev forums. There's not really any one specific place that I go to find out stuff - I just usually google whatever topic I'm learning about and read through all the information I can find about it until I have a good enough understanding to implement it myself. Sometimes it takes days or even weeks for me to fully understand a certain topic, but learning game dev isn't a fast process!
@JonyXL44
@JonyXL44 7 жыл бұрын
Thank you, it's fantastic to hear that I can immediately start! :)
@fishingbadboys
@fishingbadboys 7 жыл бұрын
ThinMatrix, I know that you have answered this question a thousand times but I'm still going to ask it. I don't want you to make an Animation tutorial BUT: 'could you please make a video that explains animation with examples of your socuwan codes. We don't need any tutorials to implement it in the code yet. But could you please explain it how you thought of that method and how you Implemented it with the correct in game event type. We are here to learn the same thing as you. But let us try to maby make our own classes and maby teach you something for a change! Thanks, Casper Klinkhamer
@fishingbadboys
@fishingbadboys 7 жыл бұрын
And could you do a collision tutorial that is the main part of what we need to start making the game itself
@ThinMatrix
@ThinMatrix 7 жыл бұрын
Actually I am now working on an animation tutorial! It's going to take a little longer to make than the usual tutorials, but it will be out before the end of the year :)
@fishingbadboys
@fishingbadboys 7 жыл бұрын
ThinMatrix THANKS! How about the collision tutorial??
@janisir4529
@janisir4529 4 жыл бұрын
Like really, Java??? With Eclipse? Heresy!
@douggale5962
@douggale5962 5 ай бұрын
6:55 More efficient? That is not what efficient means. The fewer vertices, the less efficient. With one vertex, it's almost all overhead. If there were billions of vertices, the overhead would be negligible. You meant faster.
@MarkABorkowski
@MarkABorkowski 7 жыл бұрын
hey thin, I know you never had fully skinned animations in socuwan and that's probably why you haven't made a tutorial on it yet, after looking around I found that collada animation and skinning is much to difficult for me because of its weird xml format and found the md5 skinning animation simpler and easier to understand, one tutorial I found for the lwjgl even walks you step by step on how to implement md5 animations if you can translate a little of their code over to the engine, hope this helps you. lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content/chapter19/chapter19.html
@ThinMatrix
@ThinMatrix 7 жыл бұрын
Thanks for the link, I'll take a look :)
@TeamRaiderz
@TeamRaiderz 7 жыл бұрын
wow first
OpenGL Skeletal Animation Tutorial #1
13:36
ThinMatrix
Рет қаралды 215 М.
Making Minecraft from scratch in 48 hours (NO GAME ENGINE)
16:38
Cute Barbie gadgets 🩷💛
01:00
TheSoul Music Family
Рет қаралды 72 МЛН
Eccentric clown jack #short #angel #clown
00:33
Super Beauty team
Рет қаралды 20 МЛН
How I Implemented Shadows in my Game Engine
7:45
ThinMatrix
Рет қаралды 93 М.
OpenGL - cube maps (skyboxes and environment mapping)
13:10
Brian Will
Рет қаралды 28 М.
How Pixar Textures EVERYTHING
8:02
Smeaf
Рет қаралды 219 М.
All OpenGL Effects!
30:21
Low Level Game Dev
Рет қаралды 54 М.
Color Quantization and Dithering
11:55
Acerola
Рет қаралды 400 М.
OpenGL with C++ 10: Cubemaps
18:33
GetIntoGameDev
Рет қаралды 664
Blender 2.9 Environment Textures Tutorial | Blender Blast #001
9:28
Surfaced Studio
Рет қаралды 30 М.
Programming Particle Effects in my Game Engine
13:00
ThinMatrix
Рет қаралды 77 М.
HEROBRINE vs NIKOCADO AVOCADO Rank Up Challenge
0:20
Mazizien
Рет қаралды 8 МЛН
Mortis on Heist💀#brawlstars #shorts
0:12
Kevinn64
Рет қаралды 4,7 МЛН
Пьяный дед продал внука в Roblox! 😱 @titwow
0:28
ONE MORE SUBSCRIBER FOR 6 MILLION!
0:38
Horror Skunx
Рет қаралды 12 МЛН