br3tt Posted March 22, 2016 Share Posted March 22, 2016 Hi peeps, Just going to get straight to the point. I want to look into building a car "configurator". The idea is you have a base model and then the user picks colours, wheels and other accessories for their configuration to purchase a new vehicle. Traditional configurators just show layered images to mimic a live editable environment for the vehicle but wouldn't it be better to treat it as a game scene and show a real 3d model? Think of it like Need for Speed where you add upgrades to your car. Do you think using something like Babylon, over something like three.js, overkill? The model assets would have to be very detailed to get a realistic look. Is there a preferred file format to deliver the model assets to the frontend that would look somewhat realistic but keep bandwidth down for user experience? I need to read up on how a model is put together but for html5 assets are they delivered in parts such as: a mesh(the skeleton/wireframe), texture (glass window, metal body, rubber tires), shader (reflections?) or as a "whole". I think I would prefer a way to load them separately in parts then when a user clicks something to change the body paint colour could just async load in that texture colour. Even better would be to dynamically render the colour on the client just by passing in a hex value. Any examples of something like a car configurator as a game scene out there? Any thoughts in general about this topic? Many thanks, any help is greatly appreciated. Quote Link to comment Share on other sites More sharing options...
b10b Posted March 23, 2016 Share Posted March 23, 2016 Depends on the intended user experience - e.g. what does the user do with the configured car? If you want to drive it around in a game then it makes sense to use a gaming tech. If you want to send it to manufacturing then it might not. Do you want to protect your 3D assets? Does the user want to wait ages downloading detailed 3D models of components that they mostly won't select. Have you considered using server side rendering coupled with a less detailed client side interface? Many questions. Quote Link to comment Share on other sites More sharing options...
br3tt Posted March 23, 2016 Author Share Posted March 23, 2016 2 hours ago, b10b said: Depends on the intended user experience - e.g. what does the user do with the configured car? If you want to drive it around in a game then it makes sense to use a gaming tech. If you want to send it to manufacturing then it might not. Do you want to protect your 3D assets? Does the user want to wait ages downloading detailed 3D models of components that they mostly won't select. Have you considered using server side rendering coupled with a less detailed client side interface? Many questions. Hi b10b, thanks for the reply. After a user has configured their vehicle they just have a a couple options such as save as pdf or send to a dealer to pursue a purchase. What would be cool is if you could see your car "in the wild" have a short animation of it driving around. Wheels will spin / background environment will move along and the camera will do a 360 degree pan around the vehicle. Maybe even a possibility to open doors or the boot too. Protecting assets is something to be considered but it doesn't have to be a critical thing. Was planning to encrypt whatever file format I go with and decrypt on the frontend. If the user really wanted to they could look through the minified code to figure out how it's done so it's not a major issue. The initial load will be a basic spec vehicle, then further actions will then async load in other components such as wheels / headlights / sunroof options etc. Server side isn't something I would like to do. When we are talking 500+ million hits / year that would get very expensive. I've had a look at three.js examples and came across this http://threejs.org/examples/#webgl_loader_ctm_materials . It's a 3d render of a car and it's using .ctm format? In the code you can specify a hex value for the body paint and it will render it on the frontend with that colour without requiring a new asset. Is that a standard thing available no matter the format or special to .ctm? Would save a lot of bandwidth. Thanks! Quote Link to comment Share on other sites More sharing options...
b10b Posted March 23, 2016 Share Posted March 23, 2016 Before ruling out server-side perhaps have a look at this: http://www.migenius.com/ At 500 million hits I'd be surprised if the cost of rendering was as significant as the cost of bandwidth on all the HD 3D assets? Plus this approach can lend itself to the "in the wild" short animation with more graphical reality and consistency than a client side solution can reliably deliver (cross platform). Imagine a little customised video to easily share on social for example? For something simpler (video game grade) I have no doubt Three.js would be up to the task, it is a very fine library. As you say textures can be dynamically generated from scratch, or from other textures. If most of the customisation is down to colors and fabrics, this may be ideal. It would be a fun project for sure. Upfront load time, bandwidth, cross platform consistency and potential asset theft would be the downsides. Quote Link to comment Share on other sites More sharing options...
br3tt Posted March 23, 2016 Author Share Posted March 23, 2016 2 hours ago, b10b said: Before ruling out server-side perhaps have a look at this: http://www.migenius.com/ At 500 million hits I'd be surprised if the cost of rendering was as significant as the cost of bandwidth on all the HD 3D assets? Plus this approach can lend itself to the "in the wild" short animation with more graphical reality and consistency than a client side solution can reliably deliver (cross platform). Imagine a little customised video to easily share on social for example? For something simpler (video game grade) I have no doubt Three.js would be up to the task, it is a very fine library. As you say textures can be dynamically generated from scratch, or from other textures. If most of the customisation is down to colors and fabrics, this may be ideal. It would be a fun project for sure. Upfront load time, bandwidth, cross platform consistency and potential asset theft would be the downsides. Akami takes about 75% of the bandwidth from us so it's not overly expensive. A customized video is very appealing, that would be super cool. For now though I'm going to explore just frontend rendering and see how far I get. Cheers for help, I'm going to start digging into more threejs now and try put together a little demo. Do you know any repository of some free simple models to get started with for experiments? Thanks! Quote Link to comment Share on other sites More sharing options...
Gio Posted March 24, 2016 Share Posted March 24, 2016 20 hours ago, br3tt said: Protecting assets is something to be considered but it doesn't have to be a critical thing. If you are planning to do this with real-world cars, it is very much a critical thing. Car manufacturers wouldn't let you do it otherwise. Just saying.... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.