Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. There is GoToPoint but It is used for walking characters and wouldn't work for a camera.
  3. I actually just started a new job working as a Product Development Engineer last week (at a major automotive OEM manufacturer in the US), so right now I have been in the initial steps of planning out a new development PC (finally!). Need to save up some money to pay off some important things first though because I am still kinda college-kid-poor. I'd definitely be down to make contributions to an FPS demo though as long as there is some reasonable compensation for myself, but I'd rather discuss those types of deals when I feel like I am ready to get back on my feet again with this project, that is after I get on top of other things financially also. Having a brand new PC to work with for the first time in years is going to be a gamechanger though and I am really looking forward to that! But... I need to be wary of the fact that I will need to work around a full time schedule as well as any potential social obligations that might arise (friends, family, weightlifting, weekend "activities" etc.). I don't want to burn myself out that way. It feels like every year new software comes out that dramatically changes a game dev pipeline and I have been paying attention to see what programs are out there which I can buy in order to get the highest quality possible for textures, models etc. Most of those decisions are going to be based on what speeds up my workflow the most without making sacrifices in terms of visual quality. I'll keep updating in here as usual for now when I have news.
  4. Yesterday
  5. I'm just waiting for a friendly command like MoveToPoint... I'll have insomnia tonight.
  6. I think you would use the Move function combined with some math.
  7. How can I move an entity to a specific point?. I have a camera that is positioned at the point of collision of a beam in a third person camera. The idea is that after the collision it returns to the pivot of the camera, but I want it not to do it quickly but slowly, until it reaches the position of that pivot. Any suggestions?
  8. The stuff in there overall doesn't look good, and none of it is very active. Compare that to the games section, which looks fun and exciting.
  9. but how would new people find the link if you dont have on the page or in the drop down you need to make it easy for them
  10. I'm approaching a point where I need to start creating game templates for the new engine. One of the templates will be an FPS demo unashamedly based on Doom and I am interested in using your artwork for the level design.
  11. I don't feel like it's being used and I removed the link in the menu, maybe temporarily. Content will remain forever though.
  12. 2D drawing is working in same world as 3D render, sprite order is working, need to implement Z-sorting across multiple instances of same mesh, test zoom on skyboxes, and re-check lighting.

  13. I can't find access in the site menu to get to the projects.
  14. We're getting close to a time when I won't be able to use programmer art anymore. SketchFab has been very helpful.

  15. I suggest slowing down the jump / falling animation. It would look more natural if he didn't make such an extreme motion so quickly. Other than that, it looks really great.
  16. Last week
  17. One possibility could be linking sprites to cameras? If they're not linked to any camera, they are visible in all cameras (the default).
  18. Josh

    Turbo Engine 2D Redux

    Something like that. Yeah, I think this account for 99% of use cases.
  19. reepblue

    Turbo Engine 2D Redux

    So, what about the 3D sprites? What would they be called? Billboards? Overall, this seems much more easier to understand. With SVGs, we can now have round HUD elements without fears of rasterization!
  20. You did link it in at least one other blog.
  21. For some reason this blog has three times as many views as most of my other articles.
  22. Previously, we saw how the new renderer can combine multiple cameras and even multiple worlds in a single render to combine 3D and 2D graphics. During the process of implementing Z-sorting for multiple layers of transparency, I found that Vulkan does in fact respect rasterization order. That is, objects are in fact drawn in the same order you provide draw calls to a command buffer. Furthermore, individual primitives (polygons) are also rendered in the order they are stored in the indice buffer: Now if you were making a 2D game with 1000 zombie sprites onscreen you would undoubtedly want to use 3D-in-2D rendering with an orthographic camera. Batching and depth discard would give you much faster performance when the number of objects goes up. However, the 2D aspect of most games is relatively simple, with only a dozen or so 2D sprites making up the user interface. Given that 2D graphics are not normally going to be much of a bottleneck, and that the biggest performance savings we have achieved was in making text a static object, I decided to rework the 2D rendering system into something that was a little simpler to use. Sprites are no longer a 3D entity, but are a new type of pure 2D object. They act in a similar way as entities with position, rotation, and scale commands, but they only use 2D coordinates: //Create a sprite auto sprite = CreateSprite(world,100,100); //Make blue sprite->SetColor(0,0,1); //Position in upper-left corner of screen sprite->SetPosition(10,10) Sprites have a handle you can set. By default this is in the upper-left corner of the sprite, but you can change it to recenter them. Sprites can also be rotated around the Z axis: //Center the handle sprite->SetHandle(0.5,0.5); //Rotation around center sprite->SetRotation(45); SVG vector images are great for 2D drawing and GUIs because they can scale for different display resolutions. We support these as well, with an optional scale value the image can be rasterized at. auto sprite = LoadSprite(world, "tiger.svg", 0, 2.0); Text is now just another type of sprite: auto text = CreateSprite(world, font, L"Hello, how are you today?\nI am fine.", 72, TEXT_LEFT); These sprites are all displayed within the same world as the 3D rendering, so unlike what I previously wrote about... You do not have to create extra cameras or worlds just to draw 2D graphics. (If you are doing something advanced then the multi-camera method I previously described is a good option, but you have to have very demanding needs for it to make a difference.) Regular old screen coordinates you are used to will be used (coordinate [0,0] is top-left). By default sprites will be drawn in the order they are created. However, I definitely see a need for additional control here and I am open to ideas. Should there be a sprite order value, a MoveToFront() method, or a system of different layers? I'm not sure yet. I'm also not sure how per-camera sprites will be controlled. At this time sprites are stored in a per-world list, but we will want some 2D elements to only appear on some cameras. I am not sure yet how this will be controlled. I am going to try to get an update out soon with these features so you can try them out yourself.
  23. I am working something out that is a little bit more conventional, but retains some of the properties discussed here. Stay tuned...
  24. Confirmed: https://www.khronos.org/registry/vulkan/specs/1.1/html/chap24.html#primrast-order
  25. During implementing of Z-sorting for transparency, I found that Vulkan might actually preserve the rasterization order in render passes, which gives me reason to rethink this. Cameras in Turbo Engine always calculate and send an orthographic matrix to the GPU so it might be better to render 2D primitives simply by switching their shader family to a set of shaders that uses the orthographic matrix instead. In any case, I certainly have learned a lot more about Vulkan in the last couple of days.
  1. Load more activity
×
×
  • Create New...