Jump to content

Josh

Staff
  • Content Count

    15,708
  • Joined

  • Last visited

Community Reputation

8,196 Excellent

About Josh

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    San Francisco, CA

Recent Profile Visitors

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

  1. Josh

    Supernatural City

    There is a very strange place I know. I might be able to sneak in, in two weeks.
  2. I plan on paid updates every 12-18 months, but you can buy one version once and use forever.
  3. Josh

    Supernatural City

    man I could get you some interesting reference photos of some run down places.
  4. @Angelwolf Like this?: https://www.leadwerks.com/learn?page=API-Reference_Object_Entity_Camera_SetFogMode
  5. Working on GDC 2020 lecture proposal.

    1. Thirsty Panther
    2. Josh

      Josh

      VR in aerospace and performance optimization for rendering large CAD models in real-time.

    3. Thirsty Panther

      Thirsty Panther

      Interesting and catchy :)

  6. I guess I have only done "mute". He looks like he is riding regular. The flying squirrel is pretty awesome.
  7. So in other words make it temporal rather than distance-based? That makes a lot of sense. I never really thought about that before.
  8. Josh

    Shoot Simulator

    Very cool. I bet that can save a lot of money in basic training. No ammo, no weapon maintenance, no huge shooting range to go to.
  9. Sorry, I just meant that in a matter-of-fact way. The way the plugin system is set up, the data is always run through the GMF2 data format. So we can have a plugin that loads a GLTF or USD or other files and gives it to the engine in memory as a GMF2 file, or we can make it save the GMF2 for faster loading. Bottom line is if we have an import plugin for any format, we also automatically have a converter. Plus the file format is so simple I think we will see more community-made exporters than we did with GMF1, which had a "tricky" chunk structure. Plus, we have the GMF2 SDK, which makes it easy to just create some data structures and then the code saves a file for you. So GMF2 and its SDK is a big funnel we can easily pipe all kinds of data into and either save it or load it from memory. I think loading speed is a significant consideration we should be paying attention to. This seems like a really basic consideration we should be designing file formats around, for all games. I guess I need to get some definite numbers on what mesh data load times are like under realistic use cases.
  10. @Monkey Frog Studio You've convinced me to make GMF2 our default file format. If another standard is coming along that replaced GLTF, yet still does not give us fast-loading models, we need to invent our own. We will still provide direct loading and optional conversion of GLTF files, and maybe also this new format, but some of these huge CAD files we are working with would take ages to load if we have to sort through all the data. I think we will be able to show some loading speed comparisons between GLTF and GMF2, and the difference will be massive. I am going to introduce the file format at GDC 2020, along with tools for working with it.
  11. Notice there is actually no one talking about a game-ready model format, because I guess that is boring or something. OpenGEX, Collada, and FBX are "exchange formats" for moving data between modeling programs, and I guess this USD format is too. GLTF is a scene (not model) format for web graphics, which is why it uses JPG and PNG textures. No one even considers making something for normal 3D games. What do you think the advantage of this USD format is? GLTF is nice because at least you can load all the Sketchfab content up easily.
  12. Josh

    How to use gmax

    You might actually be able to use it for commercial games: https://www.turbosquid.com/Download/?ID=L567261&DLC=4GYYVMKP7G
  13. Josh

    How to use gmax

    Not a lot of people know about this, but back in 2001 Discreet (before the company was purchased by Autodesk) released a free version of 3ds max for modding games. Back then game file formats and tools were much more highly specialized than today, so each game required a "game pack" to customize the gmax interface to support that game. I think the idea was to charge the game developer money to add support for their game. Gmax supported several titles including Quake 3 Arena and Microsoft Flight Simulator, but was later discontinued. I personally love the program because it includes only the features you need from 3ds max for hard surface modeling. It's basically a stripped down version of 3ds max with only the features you need. Gmax still survives today, apparently in the custody of Turbosquid. You can download it here. You need the gmax 1.2 installer and the Tempest game pack for Quake 3. You will also need to request a free registration key from Turbosquid. After installing gmax, you can simply find the MD3 export plugin ("md3exp.dle") in the Tempest game pack download and copy that to your "C:\gmax\plugins" directory to enable export. There is also an optional There is also an optional MD3 import script by Chris Cookson which is uploaded here for safekeeping: q3-md3.ms With the plugin system in our new engine I was able to add support for loading Quake 3 MD3 models, so you can export your gmax models and load them up in the new engine. However, there are some restrictions. The MD3 file format uses compressed vertex positions, so your vertex positions have a limited range and resolution. Additionally, there are restrictions on what you can do with the gmax program, so take a look at the licensing terms before you do anything. Still, it's a fun program to have and this is a nice feature to play around with.
  14. Quake 3 Arena player models are split into three parts. If you want to load them up, this is how: //Load Quake 3 plugin auto md3loader = LoadPlugin("Plugins/MD3.dll"); //Load Q3A character auto head = LoadModel(world, "Models/MD3/bitterman/head.md3"); auto torso = LoadModel(world, "Models/MD3/bitterman/upper.md3"); auto lower = LoadModel(world, "Models/MD3/bitterman/lower.md3"); auto tag_head = torso->FindChild("tag_head"); head->SetParent(tag_head, false); auto tag_torso = lower->FindChild("tag_torso"); torso->SetParent(tag_torso, false);
×
×
  • Create New...