Jump to content

sn0wsh00

Members
  • Posts

    80
  • Joined

  • Last visited

  • Days Won

    4

sn0wsh00 last won the day on September 21 2022

sn0wsh00 had the most liked content!

Online IDs

  • Steam
    https://steamcommunity.com/id/sn0wsh00

Profile Fields

  • Website
    https://linktr.ee/sn0wsh00

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I've been tinkering around with the r.UseLegacyMaintainYFOVViewMatrix variable in Expedition 33 and it has me a little confused. Based on Epic's own description, r.UseLegacyMaintainYFOVViewMatrix is "Whether to use the old way to compute perspective view matrices when the aspect ratio constraint is vertical." It sounds like it means whether or not the game should use vertical instead of horizontal field-of-view, yet in my testing, the horizontal FOV doesn't always seem to match up to the corresponding vertical FOV. With the variable set to true, here's how the game looks like with an FOV of 85: At a 16:9 aspect ratio, the corresponding horizontal FOV is 116.91. Yet, when I set the variable to false and set the FOV to 116.91, I get this view: I have to set the FOV to 112 to make it match the view of the first image: Even more confusingly, with r.UseLegacyMaintainYFOVViewMatrix = true, setting the FOV to 54.5 (top) matches the r.UseLegacyMaintainYFOVViewMatrix = false view at 85 degrees i.e. the corresponding horizontal FOV: So yeah, I have no idea what's going on.
  2. Using EternalTrail's eeVR Blender plugin, I've finally been able to render my IMAX theater as a 360° video in EEVEE. It still took a while a render, but it was still a lot faster than Cycles: DaVinci Resolve cannot export videos wider than 3840 pixels, so instead I used FFmpeg to create the video. Here's the FFmpeg code I used: I tried encoding with libx265, but that caused issues on Youtube. Watching a video projected onto a giant screen in VR/first person is very different from watching the video directly. For one, it makes it more obvious when the video's subject is off-centered. IMAX movies, despite their 1.43 aspect ratio, usually frame their subjects in a widescreen AR such as Scope; all the stuff outside the 2.39 aspect ratio frame is merely meant to fill the viewer's peripheral vision. For VR video, though, Iudex Gundyr is mainly positioned towards the top of the frame, forcing viewers to look towards the ceiling as opposed to the center of the screen (good thing you can't get neck strains from watching 360° videos in browsers). Thankfully, FromSoftware games have a parameter (LockCamParam) that controls non-cutscene camera positions.
  3. Here's an IMAX theater I created in Blender: Download link: https://drive.google.com/file/d/1VkKj0IXt6CKxCcEjm5F82diCPg5x7iCX/view?usp=drive_link Features: 26.0 m x 19.8 m screen. Can be flat or curved. 8 rows of stadium seating 3 seat variations: low, medium and high poly 12 sets of speakers Blender drivers How to use: All speakers are linked to either the Speaker_main or speaker_secondary data blocks. Speaker_main is used by the front and corner speakers, while speaker_secondary is used by the side and ceiling speakers. You only need to edit two speakers (one from each data block) to properly play imported sound Movies are controlled by the Movie_Texture node group inside the Movie_Screen material shader. The Movie_Screen shader can be accessed by selecting a screen mesh. Videos with 1.43 aspect ratios work best with this node. In Cycles, images are projected onto the screen via a spotlight. In EEVEE, the image is displayed directly on the screen, as light projection is not possible in EEVEE. I created this Blender file to simulate how it's like to watch videos on a large format IMAX screen. Creating something like this inside a video game engine would certainly be better, but unfortunately, I currently have no idea how to use Unity, Unreal, Source 2 etc. A 360° video could also work as a VR environment, but Blender only renders panoramas natively in Cycles. You can find more information and full sized renders on these pages: https://www.deviantart.com/sn0wsh00/art/Blender-IMAX-Theater-v2-1271329126 https://www.deviantart.com/sn0wsh00/art/Blender-IMAX-Theater-360-Panorama-v2-1272315468
  4. sn0wsh00

    Elden Ring

    It sort of bothers me that Godfrey, despite being a Tarnished, is portrayed as kind of a giant, so here's a mod I created that makes him (almost) player-size: I used a C++ runtime library called ERSkeletonman to create this mod.
  5. Apparently the current version of CS:GO's Dust II was originally made for Source 2, so I guess it makes sense that Dust II would look amazing in CS2 despite just being a port. I also like how Valve is upping the blood and gore in what is already a pretty splattery game. It'll look great in Zombie Escape:
  6. Kinda sus these maps are
  7. sn0wsh00

    Blender

    There are two main ways to directly import Source Engine model into Blender: SourceIO or io_import_vmf. In addition to importing meshes, both tools are able to import materials, to a certain extent. For CS:GO models, both tools import materials with no problems. For TF2 models, though, I've had to manually import head, eye and hand textures. The way these two tools convert Source textures/materials into shader nodes are different. SourceIO uses the BlenderVertexLitGeneric node group in their materials, a node group that's pretty complex, while io_import_vmf uses a much simpler shader node setup. I haven't seen anyone compare these shaders yet, so here's a comparison with the TF2 Demoman, rendered in Cycles. io_import_vmf shader is on the left while BlenderVertexLitGeneric is on the right: Here are the head texture shader nodes for io_import_vmf and BlenderVertexLitGeneric. For the io_import_vmf body textures, I set Specular Tint to 0 and Roughness to 0.700: And here's a comparison of the two shaders with CS:GO's Getaway Sally (again, io_import_vmf shader is on the left, BlenderVertexLitGeneric is on the right): Here are the head texture shader nodes for io_import_vmf and BlenderVertexLitGeneric. For the io_import_vmf body textures, I set Specular Tint to 0 and Roughness to 0.396: Overall, despite using fewer nodes, I think the io_import_vmf renders look really similar to the BlenderVertexLitGeneric render. If you don't like the shiny light in the io_import_vmf models, you can simply crank up the roughness.
  8. Every time I use AoE2: Definitive Edition's mod manager, I get to listen to this awesome track:
  9. I thought I could share with you guys four free websites for physics-based rendering textures. All of these website allow you to freely download textures at any available resolution. They also do not require you to create an account. AmbientCG Website: https://ambientcg.com/ # of Textures as of September 2022: 1761 Public Domain CC0 1.0 license Textures come as image files cgbookcase.com Website: cgbookcase.com # of Textures as of September 2022: 535 Public Domain CC0 1.0 license Textures come as image files. Free PBR Website: https://freepbr.com/ # of Textures as of September 2022: 434 $9 fee to use textures commercially Textures comes as image files, but have been prepared for use in Blender, Unity and the Unreal Engine. Poly Haven Website: https://polyhaven.com/ # of Textures as of September 2022: 288 Public Domain CC0 1.0 license Textures can be downloaded as a Blender file with shader nodes and lighting already set up. They can also be downloaded as a GLTF file or as image files. It should be pretty easy to set up the shader nodes. Just connect base color/albedo/diffuse to Base Color, height/roughness to roughness, normal to normal and so forth. If you have an ambient occlusion texture, just combine that with your color texture using a MixRGB node. And here's a comparison of similar textures from each website: (Full sized image can be viewed here) All of these balls were rendered in Cycles using the lighting that came with Poly Haven Blender files. If I had to choose, I would say Poly Haven textures look the best, in that they're a lot bumpier than textures from the other three websites. This might be because Poly Haven normal maps look like this, while the other normal maps look like this.
  10. I recently tested the Mesh to Metahuman tool on some Source Engine models, just to see how well it ports those models into UE5. My results can be divided into three tiers. First is the Louis Tier: Not only did Metahuman make Metahuman Louis look a lot like L4D Louis, but it did so without me making any edits to the mesh's markers outliner. All other Metahumans in this post were generated from edited markers. Next is the "I Guess I See The Resemblance If I Squint" tier: From left to right: Alyx, Chell, Coach, G-Man, Gordon Freeman. And finally, the Zoey tier. I could be the hair, but I don't think so: On a somewhat related note, if you're using Blender and you want to export your mesh as an OBJ for use in UE5, make sure in the transform options that Forward is set to Y Forward and Up is set to Z Up.
  11. Ever wonder how agents look like without their masks and glasses? Why of course you do:
  12. sn0wsh00

    Blender

    I've recently been importing CS:GO buy menu animations into Blender. The thing with buy menu animations is that they are actually two separate SMD animations blended together. I managed to come up with a workflow on how to do this in Blender (this only works player models located inside the custom_player folder): First, I installed Blender Source Tools and io_import_vmf. Then, using Crowbar, I decompiled animset_uiplayer_buymenu.mdl, which is located inside models/player/custom_player/uiplayer In Blender, I imported my CS:GO agent from the custom_player folder using io_import_vmf's Source Engine Model (enhanced) option. In this example, you'll see that I imported John 'Van Healen' Kask (ctm_swat_variantg). Using Blender Source Tools' SMD import, I navigated to the decompiled animset_uiplayer_buymenu_anims folder and imported a_buymenu_motion.smd. Before pressing the import button, I made sure the Bone Append Method was set to Make New Armature. Selecting the imported model's armature, I once again used BST's SMD import and once again navigated to the animset_uiplayer_buymenu_anims folder, this time selecting a non-motion pose (they all start with either ct_ and t_). I also made sure the Bone Append Method was set to Append to Target. When the SMD is imported, you'll see your CS:GO model go into the buy menu pose. This model, though, will be completely still. In a secondary viewport, I changed the viewport to NonLinear Animation, which at this point looked like this. Under the ctm_swat_variantg armature, I clicked the Push Down Action button, causing the buy menu pose to go onto a new track. Now time to add the motion. With the focus still in NLA, I pressed N, which brought up this menu on the right. In that menu, I clicked the Dope Sheet button and selected the a_buymenu_motion option . Finally, under Extrapolation, I selected Hold Forward, while for Blending, I selected Add (the menu should look like this). Now you have a model that not only has a buymenu pose, but also looks alive. I'm a noob at Blender, so it would be nice to see if anyone else here has a better way to combine animations.
  13. There's a debate? Why would anyone prefer vanilla Hammer over Hammer++?
  14. If you've ever played Borderland 3's Bounty of Blood DLC, you might remember that the telezappers distort your screen every time you look at them. Well, with the help of trigger_look, trigger_multiple, logic_timer and logic_relay entities, I recreated this effect in CS:GO: You can download the map (tr_warp_screen) here. In essence, the map checks every 0.1 seconds to see whether the player is looking in the general direction of the portal/wormhole. If during that check the player is looking in the direction of the wormhole, then the map will distort the player's screen. If not, then the map will clear all overlays. If you want more details on how to do this in Hammer: First, create an info_target entity named "target_look_1" inside the wormhole/portal. Create 1 logic_timer entity and 2 logic_relay entities. Name the logic_timer entity "timer_1" and the two logic_relay entities "relay_1" and "relay_2." Set timer_1 to start disabled. For relay_1 and relay_2 create the following outputs: relay_1, relay_2. Relay_2 will be responsible for applying distortion overlay (effects/tp_eyefx/tp_eyefx) when the player looks at target_look_1, while relay_1 will be responsible for removing the distortion overlay when the player looks away from target_look_1 (via the command "r_screenoverlay effects/blank_fx") Now create a trigger_look brush entity with the following class info. Name this trigger_look entity "trigger_look1." This trigger_look brush must cover all the locations where you want the screen distortion effect to occur. For this map, I simply set this area to be the whole teleportation room. Create these outputs for trigger_look1. The timeout key value is the time trigger_look must wait until firing its OnTimeout output. In other words, if the player enters trigger_look1 but is not looking at target_look_1 after 0.02 seconds, then trigger_look will trigger relay_1, clearing the screen of all overlays. Moving back to timer_1, create the outputs seen here. What this will do is enable and disable trigger_look1 every 0.1 seconds Now create a trigger_multiple brush and have it cover the same area as your trigger_look entity. Name this brush "trig_mult" and set its keyvalues to the following values (ignore origin). Under trig_mult's output tabs, create these outputs. What this will do is enable timer_1 while the player is inside trig_mult and disable timer_1 (and clear all overlays) when they are outside trig_mult. Finally, create a logic_auto and a point_servercommand entity, naming the the point_servercommand entity "point_server." In logic_auto, set output to "OnMapSpawn," target entity to "point_server," via this input to "command", and parameter to "r_screenoverlay effects/blank_fx." What this command will do is clear the screen distortion effect at the start of each round. While creating tr_warp_screen, I also learned how to import custom HDR cubemaps in the map. I needed custom cubemaps because buildcubemaps creates the following cubemap for the wormhole: This cubemaps makes it look like you will be flying right into the teleportation machine if you go through the wormhole. When you actually go through the portal, though, you'll be teleporting out in the opposite direction, something this cubemap more correctly conveys: @Yanzl created this tutorial on how to create custom HDR cubemaps for CS:GO. For the cubemap crosses, here's the cross buildcubemaps (I think) created for my map: And here's the modified cross I made for the the custom cubemap: One final word. This custom cubemap looks correct only when you're looking at the wormhole from the front (which, on my map, is the X direction). If you look at the wormhole from the sides or from above, then this cubemap will appear incorrectly mirrored.
  15. For those of you who have played the Bounty of Blood DLC from Borderlands 3, you might remember that the telezappers will distort your screen every time you look at them. Well, with the help of trigger_look, trigger_multiple, logic_timer and logic_relay entities, I (sort of) recreated this effect in CS:GO: You can download this map/demo here.
×
×
  • Create New...