View RSS Feed

Recent Blogs Posts

  1. A look at vehicle workflow: Part 2

    1 Week Ago
    It's well and truly time to do a follow-up to Part 1 of our blog on vehicle workflow, in which I'll be giving an overview of vehicle interior modeling and texturing. All of the methods applied in Part 1 are very much applicable, so I recommend reading it first:


    It covers many of the tricks involved in vehicle art creation quite comprehensively, so I won't repeat them here - this part will be somewhat shorter.

    Starting the interior of a car can be a bit daunting without any reference markings, so it's best to draw up a series of lines marking out the the edges of the door panels and centre console first. You can use these markings to locate the steering wheel position, which dictates the position of the seats and some dashboard features.

    With this location pinned down, you can start modeling the dashboard and door panels. In many cars the dash is symmetrical from the drivers to the passengers side, with the exception of the gauge cluster. I typically keep a symmetry modifier on the mesh until I am reasonably happy with the overall shape, and then go about working on the unique geometry for each side. It's also helpful to place a camera at the location of the driver's head, so you can easily check the in-game PoV at any time.

    Click image for larger version. 

Name:	xKfGlQd.png 
Views:	14555 
Size:	156.3 KB 
ID:	71493Click image for larger version. 

Name:	D9Asrcv.jpg 
Views:	14092 
Size:	233.3 KB 
ID:	71494

    As you can see above, I like to use subsurface smoothing (Turbosmooth for the 3dsMax users) during the early modeling phase, especially with very curvy interiors like the Pessima's. This is an unconventional workflow, but can be quite helpful for guaranteeing consistent curves, assuming the base mesh is very low-poly.

    Below you can see the base mesh without any subsurface smoothing(left), with no more than about 500-600 triangles. This of course looks awful, but fortunately you won't have to look at it if you keep the subsurf modifier visible while modeling. Instead you'll see the nicely subsurfed mesh on the right:

    Click image for larger version. 

Name:	SIhG17l.jpg 
Views:	13436 
Size:	205.9 KB 
ID:	71495Click image for larger version. 

Name:	3lKLwvC.jpg 
Views:	12985 
Size:	196.7 KB 
ID:	71497

    The door panels can be started by extruding the existing edge loop from the external door mesh. Make sure to give the panels significant thickness to avoid clipping with the outer door mesh in a crash.

    Once you're happy with the shape, apply a single-pass subsurf modifier and watch your polygon count quadruple. You may want to merge some superfluous edge loops at this point to keep the geometry light and clean. At this point the finer details can start to be added. These include vents, door handles, knobs and asymmetrical details. As always, avoid adding geometry except where it's needed to control shading. some concave features like vents and cup-holders need an additional ring of edges around them to avoid disturbing the shading on the main surface hosting them.

    Click image for larger version. 

Name:	bde561aaa1.jpg 
Views:	12446 
Size:	128.4 KB 
ID:	71511Click image for larger version. 

Name:	sxYNtiS.jpg 
Views:	289 
Size:	154.2 KB 
ID:	71498

    Sometimes it's necessary to use triangles instead of quads, but be careful that they don't result in poor shading. Reducing geometry by merging edges can often be a more effective means for smoothing out the appearance of a model than adding polygons, and this will be especially true once a high-poly smoothed normal map is baked on.

    UV mapping the interior is all about finding continuous surfaces and unwrapping them in such a way that seams are either not visible, or occur at the edges of materials. For very curvy interiors this can result in some pretty unusual UV layouts. Once the UV layout is finished the first thing I do is bake an ambient occlusion pass onto the texture. This is a helpful starting point since it will be used in almost all of the texture layers. Bake the AO with a subsurf modifier for extra smoothness. Note that any parts that can move or rotate may look wrong with AO applied unless they are first separated from nearby occluding objects (see the steering wheel in the middle-left image below for an example - this had to be re-baked afterwards).

    Next, it's a good idea to bake a colour-coded map of material types and keep it on a hidden layer in your working file, so you can easily select everything using a particular material when creating the texture.

    The official cars currently use 2048x2048 interior textures, which we think is a suitable middle ground between quality and loading speed. Nevertheless, we work on textures at 4096x4096 to preserve their quality during editing, and to allow future-proofing.

    Click image for larger version. 

Name:	GKR0AgO.png 
Views:	286 
Size:	1.86 MB 
ID:	71510Click image for larger version. 

Name:	ejZL9K9.png 
Views:	231 
Size:	173.5 KB 
ID:	71499Click image for larger version. 

Name:	Midsize_interior_materials.png 
Views:	214 
Size:	86.1 KB 
ID:	71515Click image for larger version. 

Name:	Midsize_interior_stencil.png 
Views:	148 
Size:	54.7 KB 
ID:	71514

    Now bake on the normal map, also using a subsurf modifier. To give the edges of UV islands some extra pop, you can also overlay a UV-island based bevel map. Simply render out the UV islands in white (above, right) in very high resolution, apply some Gaussian blur and run a normal map filter to create well-defined normal map edge bevels.

    Some details are too small to be included in the mesh geometry, but can be modeled separately and baked as normal and diffuse maps onto the main texture. I group these in a new layer and use them to bake temporary textures, before baking these textures onto the main interior textures. In Blender, you can use two UV layers to manage this: one UV layer is for the temporary detail textures (stereo, A/C unit, power window controls), and another UV layer is for the main texture, which the details will be baked to.

    Click image for larger version. 

Name:	midsize_radio_d.png 
Views:	285 
Size:	252.7 KB 
ID:	71503Click image for larger version. 

Name:	midsize_radio_n.png 
Views:	273 
Size:	96.1 KB 
ID:	71504Click image for larger version. 

Name:	egAzl78.jpg 
Views:	315 
Size:	151.1 KB 
ID:	71500

    A specular map can generally be derived from the diffuse map, with some special overlays to account for differences in materials or adding grunge spots. For a subtle lighting effect that gives the diffuse textures a photo-like quality, the normal map can be converted to greyscale and faintly applied as "hard light" over the main diffuse texture. Reflectivity is the inverse of the diffuse texture's alpha map; more transparent areas are more reflective.

    If you're working in Blender it's helpful to set up the materials for preview in the viewport. However, be aware that things can look significantly different in-game, so it's a good idea to regularly export your work to get
    a feel for how the lighting will look in

    Click image for larger version. 

Name:	mbbAd7t.png 
Views:	347 
Size:	1.13 MB 
ID:	71501Click image for larger version. 

Name:	midsize_interior_s.png 
Views:	238 
Size:	280.4 KB 
ID:	71516Click image for larger version. 

Name:	91bee6fa3e.jpg 
Views:	499 
Size:	290.1 KB 
ID:	71496

    Making the gauge cluster is more of a mathematical problem than a modeling issue, and involves first figuring out the range of the speedometer, the number of interval marks , and the total angle of the needle arc from zero to max speed. Once you've sorted this out, it's a simple matter of creating a single interval mark and copying it around the perimeter of the gauge, rotating it by several degrees at a time. Keep switching back to your camera in the driver's head position to make sure the gauges are readable. The finished gauge cluster model can be rendered onto 1024x512 textures; diffuse, normal and specular, which will then be applied to a flat plane on the dashboard mesh with a unique material.
    Click image for larger version. 

Name:	d3a02a395f.png 
Views:	518 
Size:	179.7 KB 
ID:	71525Click image for larger version. 

Name:	d2463a7a90.png 
Views:	277 
Size:	67.9 KB 
ID:	71527Click image for larger version. 

Name:	midsize_gauges_n.png 
Views:	229 
Size:	59.5 KB 
ID:	71528

    Seats can also be modeled using the 2-stage process of low-poly primitive shapes, and application of subsurface smoothing followed by refining and cleaning up the mesh. These can be assigned their own 512x512 textures. Depending on styling (more curves usually result in more geometry), the full set of interior meshes may have up to 20,000 triangles.

    Click image for larger version. 

Name:	a8a6daa04e.jpg 
Views:	319 
Size:	358.8 KB 
ID:	71509Click image for larger version. 

Name:	3163db5beb.jpg 
Views:	417 
Size:	418.3 KB 
ID:	71512

    The process described above is certainly not the only way to create an interior (and I've probably offended a few modeling purists with my subsurf method), but should help shine some light on the task at hand. This year we've started seeing very high standards in community car mods, and I hope this helps pave the way for more fantastic user-made content.

    Updated 1 Week Ago at 03:05 AM by B25Mitch

    Company Blog
  2. Version released

    2 Weeks Ago

    We just released a hotfix for the latest 0.4.1 version that fixes a crash on startup that happened if you had an Xbox controller connected that was low on battery :|
    Also, since the move to DirectX11, WindowsXP is not supported anymore from this version on. We created a fallback version of the game that you can get like described below.

    • Fixed crash on startup when a gamepad doesn't have full battery
    • Fixed Pessima V6 configuration not loading properly
    • Added fallback for torqueArm

    • Added "Port Escape" scenario featuring the Pessima
    • Added "Drown the Pigeon" scenario
    • Pessima: Added "stanced" configuration
    • H45: Tuned heavy duty rear suspension to take loads better
    • D15 Custom Off-Road: More damping and limiter damping
    • East Coast USA: removed duplicate bridge

    How to get the last version that supports DirectX 9:
    Right click on on the game, select properties:
    Click image for larger version.
    Then select the version under "BETAS" and just click on close:
    Click image for larger version.

    Updated 2 Weeks Ago at 03:02 PM by tdev

    Company Blog
  3. Version released

    3 Weeks Ago

    We've just released version, addressing the invisible vehicle bug and much more.

    • Small optimizations in the physics core
    • Increased timing for engine drowning
    • Controller hotplugging fixed: you can now plug/unplug controllers (joysticks, gamepads, steering wheels) at any time

    • Fixed invisible Vehicles on DirectX version 10.1
    • Merged resolution and refresh rate options for a better user experience: it was not showing all resolutions before
    • Fixed black water on Low quality settings
    • Fixed XInput cache file infinitely growing in size
    • Fixed each XBox controller being detected as two different devices at the same time
    • Fixed various "XBox controller plugged" messages appearing at wrong times
    • Fixed broken bindings (H-shifters and camera zoom) in the following steering wheels: SideWinder Force Feedback Wheel, Fanatec Porsche 911 Turbo S Wheel, Ferrari F1 wheel Integral T500, Logitech Driving Force Pro, Logitech Driving Force GT, Logitech Momo Racing Force Feedback Wheel
    • Lowered G27 LEDs log severity during successful initialization
    • Fixed 'Device Detection' progress dialog not showing up if the process takes a long time
    • Fixed 'Device Detection' progress dialog sometimes being stuck open forever
    • Fixed all 4 possible XBox controllers sharing the exact same name

    • Added the Ibishu Pessima
    • Added Pessima test scenario
    • Added self-collision to wheel axis nodes
    • Gavril Vanster: Interior mirror flexbody fix
    • Gavril T6/75: Fixed incorrectly being front wheel drive, acceleration bug fix & an issue where the engine would stop if any node touches water
    • Various small vehicle improvements and fixes
    • Minor improvements for Jungle Rock Island

    Updated 3 Weeks Ago at 09:39 PM by tdev

    Company Blog
  4. Version released

    4 Weeks Ago

    Version released, welcoming DX11

    This update took us longer, since we were working on bigger changes that needed time to mature enough to be released with quality in mind.

    DirectX 11
    We have switched from DirectX9 to DirectX11. The benefits are improved performance, future proofness and a good step towards modernizing the game engine core. The downside is that DirectX 11 will not run on Windows XP any more.

    • Moved some calculations to the GPU, speeding up the flexmeshes considerably
    • Implemented realistic Electronic Stability Control with multiple switchable configurations: Use CTRL+Q to switch. The Hirochi Sunburst is currently the only vehicle modern enough to have ESC support.
    • Small startup time improvement
    • Added force-feedback defaults to Fanatec and T500RS wheels
    • New main menu background images replacing the blurry video - Higher quality and more appealing
    • Added new vehicle Lua API: getYawAngularVelocity, getPitchAngularVelocity, getRollAngularVelocity
    • Added brakePressureDelay to simulate delay of air brakes on heavy trucks
    • Changelogs in the start menu and the info tab
    • Improved debug visualization for sounds.
    • Windows 10: Tested and found to be working well, fixed version reporting

    • Mouse wheel, axes, and some buttons can be bound now, enabling you to have mouse steering
    • Improved bindings: now faster and more direct: calling VLua, ELua, JS or TS directly
    • G27 steering wheel RPM LEDs working
    • Fixed setting bindings of high-end controllers that can fire rapid events (such as Fanatec CS or Saitek X-55)
    • Fixed inability to add and save bindings after the last one has been removed
    • Right mouse button "look" is now a binding like the rest (and can be replaced by mouse steering, accelerate & brake, and many others)
    • Add filtering options to mouse controls (deadzone, linearity, inversion)
    • Show controller name next to axis/button identifier when editing a binding (to help those with many controllers connected at the same time)
    • Show device type icon (keyboard, gamepad, etc. icons) next to most binding assignments
    • Minor GUI improvements in Controls menu to improve usability
    • "Advanced Functions" mode now also disables certain hotkeys used for debugging and alike.

    • Vehicle loading optimized making it 3x faster
    • Using average wheel speed for speedometer instead of the speed of one of the wheels
    • Fixed physics core loosing beams under rare circumstances
    • Differential improvements
    • Fixed crash when loading dead island mod with "Direct Sound" enabled
    • Removed all sound providers except one for now.
    • Fixed an issue where users could not define an audio device properly
    • Fixed negative values in colorpicker
    • Fix for suspension replacement disabling steering
    • Prevent CEF console from being enabled at the same time as full screen mode
    • Fixed sorting of rendered objects to reduce pixel fillrate, GPU state changes and to improve instancing
    • Fixed crash when more than 16 sounds are playing at the same time
    • Fixed default water density being far too low

    User Interface:
    • Added Electronic new Stability Control and ABS UI debugging apps
    • New and improved colorpicker in the vehicle selection
    • Several minor fixes to the UI: dashboard selection/highlighting, vehicle selector sizing too far
    • Improved auto-hiding of the dashboard: after 30 seconds and only when no tab is open
    • Vehicle Selector performance problems fixed: showing up much quicker now
    • Fixed Problem in the UI with duplicate audio devices making the UI stop working
    • Fixed Tacho2 up when engine values were missing: "NaN" is not shown but instead hiding the value now

    • Jungle Rock Island: Airfield progress, AI improvements, new materials/textures, added a fort, fixed dirt road suddenly ending, also now released and stable
    • GridMap: Added an ice patch, extended existing terrain samples
    • East Coast USA: Improved materials and LODs for buildings for improved performance
    • 4 new Scenarios: Moose Test, Jungle Rock Island Shortcut, East Coast USA Jumps, Heavy Machine Delivery
    • Updated colmesh for striped concrete barrier
    • Fixed "Supercar Rally" scenario
    • Fixed "Island Tour" scenario

    • T75: Added new Cement Mixer upfit. Continued optimizations. Redesigned front jbeam to better simulate leaf springs. Fixed missing hood and fender cams, rear spotlights. Fixed slow onset instability problems.
    • Sunburst: Added new rally parts and non-ABS brakes to the Hirochi Sunburst Rally
    • 200BX: Added new spoilers (XType and Small Lip). Tierod stiffness increased, fixed LSD diff being locked
    • D15: Added new off-road parts and "D15 V8 4WD Flatbed Custom" config. Fixed ABS settings for steelwheels, increased front suspension damping
    • D15/Roamer Small Trailer: Improved trailer wheels, collision and suspension
    • Roamer: Added new roofrack objects, spare tire, carry bag
    • Sunburst: Stiffened door hinges, headlights, tierods
    • Improved ABS system, also tuning (to suit new system):200BX, D15, Grand Marshal, Sunburst
    • Bolide: Fixed normalmap artifact, fixed doors colliding with fenders, stiffened chassis
    • Covet: Added new rally parts to the Ibishu Covet Rally. Increased HP of base model
    • Grand Marshal: Stiffened chasssis and rear door hinge, fixed dashboard mesh stretching
    • Pigeon: Increases suspension damping
    • Van: Fixed rear view mirror mesh stretching, increased front suspension damping
    • Concrete Barrier: Remade nodes/beams, replaced with an updated model
    • Added a "Kick Plate" prop (scenario to use it will come)
    • Flexbody binding improvements/fixes: 200BX, Bolide, Covet, D15/Roamer, Grand Marshal, Sunburst, T75
    • Improvements to glass strength: 200BX, Bolide, Covet, D15/Roamer, Grand Marshal, Moonhawk, Sunburst, T75

    Wiki updates:

    If you modified your input bindings, you might miss the default mappings for the new actions. You can either reset to default or, map it manually. We are working on fixing this issue to come up again in the future.

    If the game fails to start, please try to delete your "My Documents/" folder.

    For feedback, comments or anything alike, please use this thread: 0-4-1-x-Current-bugs-and-help-thread-0-4-1-0

    Updated 3 Weeks Ago at 08:44 AM by DrowsySam

    Company Blog
  5. Week 27 of 2015: Progress report


    Here's some of our changes since the last release, we have some heavy background work going on so we will release the update when it's ready.

    • New and improved ABS system
    • G27 steering wheel RPM LEDs working
    • Added force-feedback defaults to Fanatec and T500RS wheels
    • New main menu background images - Higher quality and more appealing (work in progress)
    • Mouse buttons, axes, and wheel binding support (work in progress)

    • Fixed an issue where users could not define and audio device properly
    • Fixed negative values in colorpicker
    • Fixed some bugs in anisotropic beam code
    • Fix for suspension replacement disabling steering

    • Supercar Rally scenario fix
    • Fixed Island Tour scenario
    • T-Series: Fix for instability, fixed wandering steering
    • Jungle Rock Island: Airfield progress, new materials/textures, added a fort
    • Improvements to glass strength: 200BX, Bolide, Covet, D15, Grand Marshal, Moonhawk, Sunburst
    • New ABS tuning (to suit new system):200BX, Grand Marshal, Sunburst
    • 200BX: Tweaked parking brake, stiffened tie rods
    • Bolide: Fixed doors colliding with fenders, stiffened chassis
    • D15: Increased front suspension damping
    • Grand Marshal: Stiffened chasssis and rear door hinge, fixed dashboard mesh stretching
    • Sunburst: Stiffened door hinges, headlights, tierods, added non ABS rally brakes
    • Van: Fixed rear view mirror mesh stretching, increased front suspension damping

    Wiki updates:
    • pressureWheels Wiki page added
    • flexBodies Wiki page improved, multiDAE incorporated
    • Beams Wiki page improved

    Work in progress:
    • DirectX 11: This will enable us in the future to use more powerful features. For the near time we will just make it work - no fancy things.
    • OpenAL Soft soundsystem supposed to replace the DirectSound Soundsystem. It's supposed to be more stable and has more features (looking into HRTF)
    • Physics Mesh handling redesign: one step closer to push things to the GPU

    -stay tuned

    Updated 07-04-2015 at 07:51 PM by tdev

    Company Blog
Page 1 of 26 12311 ... LastLast