This project aims to create a report of comparison of the different simulation software well as creating an interactive simulation through the use of modelling and simulation software. In the first phase, we were tasked to learn the basics of Blender, a 3D modelling software, and create 3D models to will be imported into Unity in the next phase. In our second phase we were tasked to learn the basic of Unity, a simulation software, where the different 3D model and the object we create in Unity will interact with each other. The report of comparison of the different simulation software will then be completed after the second phase.
IHPC stands for the Institute of High Performance Computing. It was established in August 1998, as a research institute under the Agency for Science, Technology, and Research (A*STAR). It promotes and spearheads scientific advancements, as well as technological innovations through computational modelling, simulation, and visualisation methodologies and tools. The institute's vision is to provide leadership in high performance computing as a strategic resource for scientific inquiry and industrial development.
Mine task was to explore and learn about simulation and modelling software, such as Unity, Blender, 3DS Max and more. We learnt to make use of both Blender and Unity to create a virtual environment, where 3D objects interact with each other, with the goal of investigating causal-effect relationships in a virtual space. On top of that, we were tasked to compare the different 3D modelling software available in the market. We produced a report comparing the price, functionality and difficulty of the most popular software in the market.
I started on learning Blender. Blender is the free and open source 3D creation suite. It allows for modelling, rigging, animation, simulation, rendering, compositing and motion tracking, video editing and 2D animation pipeline. However we were tasked to produce a 3D model, hence I decided to only learn how to 3D model. In this 2 weeks the 3D modelling techniques that will help quicken the process of modelling. Function such as the loop cuts, Array modifier, Bevel Tool, Boolean modifier, Bezier Curve, Extrude, Spin. These function are unique and will aid in the modelling process. Loop cuts add in edges on the surface of the cube which enable us to model the object to our desired shape more effectively instead of changing the mesh data of the object. Array modifier will create clones of the object, which allows us to "duplicate" the object and place the clones to the desired position quickly. The Bevel tool helps to smooth out the corners by add geometry to the edge. Extrude allow us to "draw" with the vertex, edge or face and get a rough outline of the shape. Bezier curve allow us to model with curve, this provide a greater flexibility for the modelling process. Spin function allows us to rotate a mesh and form a complete model. The Boolean modifier aids in removes unwanted shapes of the model. We also learnt how to render the image out and how to to setup the proper lighting and the appropriate camera view. Even tough the modelling process is difficult as even the sequence of the usage of the functions may lead to some other functions to not be able to use. For example the Mayan pyramid, if we subdivide the surface of the object first, we will not be able to add a loop cut that goes around the entire mesh. We faced many of such problems, we will always try out different ways to improve our model. After many tries, I have gained a lot more experience and knowledge of the modelling process, we continued practicing to hone our 3D modelling skill After learning all the functions and the basics of the modelling techniques, we model a few objects as show below.
Barn
Mayan pyramid
Bowling Scene
Chess board and pieces
We were tasked to simulated physics on the 3D object that we created before. Unity is a game engine which can create 3D, 2D, VR and AR reality games, hence Unity will be used to simulated the physics engine. We have to first learn the basics of Unity. The controls of Unity such as how to navigate in the scene; how to add object into the scene; translate, rotate and scale the objects are similar to that of Blender besides the fact that Unity uses a left handed coordinate system but Blender uses the right handed coordinate system. It was hard to adjust to the different axis and I often move the object in the wrong direction at first. Upon learning the controls for Unity, I had to also learn the C# coding. We have to code in C# to control the game object such as translating, rotating and control the speed pf the game object in the scene. Since I do not have much coding experience, having to learn coding is very difficult. I had to first learn the difference between the void Start and void Update, then I had to learn the language and the proper formatting of the C#. I have made many mistakes in coding because of the formatting and I often miss out ; or } which will results in the code being unable to run. Therefore we did more research and practice for coding to ensure that we do not make such mistakes for the final project and make sure that the code will run smoothly and the object will behave as we desired it to. Since we wanted to make our game object to interact with one another, we had to learn the functions in Unity. We have to apply rigid body to the game object to allow the game object to experience real-time physics such as gravity, forces and mass. We were also tasked to make an object can push things around therefore there is the function colliders and we have to choose the collider with the correct shape to ensure the object interacts properly. For example if we apply a box collider to a hollow cube, nothing can enter the cube. This was important for our final task as we thought of making a person that can kick a ball into a goal post.
We were originally tasked to make a robotic arm that can interact with other 3D model through the simulation. We wanted to use keyboard controls to control the rotation of each joints of the robotic arm. However to allow the robotic arm to have five degrees the freedom that and each joint to move in both directions will result in ten keyboard keys. We felt that having so much keyboard keys will lead to confusing the users. Furthermore we could not find a way to restrict the rotation of the joints and this will lead to the object passing through itself, hence this will not be a correct representation of what an actual robotic arm will be. Hence we changed the controls to sliders, there will be a slider for each of the joints and will have an individual script to restrict the rotation of the joints. The slider will lead to confusion as they are arranged by the hierarchy of movement and it shows the limit of rotation for each joint. Sliders are more suitable as it is easy to use and will provide a more accurate depiction of an actual robotic arm.
Robotic arm moving through slider controls
Code for sliders
We then created a person that can interact with the different 3D models in the virtual environment. The third person controller is a standard asset in Unity where there is a character that we can control using the keyboard keys. W to move forward, A to move left, S to move back, D to move right, Space to jump and C to crouch. However the character does not have a material attached to it hence we modified the character by importing another asset to give the character some materials. By applying rigid body and suitable collider for all the game objects in the scene the person can interact with other 3D model such as bowling ball, bowling pin, soccer ball and the goat post which were imported from Blender. By altering the drag and angular drag we can make to collision and the movement of the object more realistic and convincing. However the view of the camera is bad especially when the person moves away from the camera which make it difficult for the user to view. Therefore we wanted the camera to follow the person around at a fixed distance away and will continuously look at the person. This makes the viewing of the person interacting with other objects easier and more visually appealing.
Person moving and interacting in virtual simulation
Code for camera that follows the person
Last but not least we did our report of comparison of the different simulation software. Since 3D modelling is very popular in multiple industries now and that there are many different 3D modelling software. This serves as a purpose to help the reader to better understand the different 3D modelling software before choosing and investing time on a particular software. Therefore we will be comparing the price; function, feature ad intended uses and the difficulty of the different 3D modelling software. Through this report we wished that people will able to know what are the most popular 3D modelling software and know which software are suitable for their job scope. Furthermore we hoped that readers will know what are the pros and cons about the software before their decision of one particular 3D modelling software
Comparison of different 3D modelling software
Tan Yue Yang, Chan Chun Mun Aloycius
INTRODUCTION
3D modelling is a technique in computer graphics for producing a 3D digital representation of any object or surface. 3D models are used for a variety of mediums including video games, movies, architecture, illustration, engineering, and commercial advertising. An artist uses special software to manipulate vertices in virtual space to form a mesh. A mesh is a collection of vertices that form a 3D object. There are many different 3D modelling software available in the market. Therefore in this report, we will be comparing the most popular and most commonly used 3D modelling software. These software are Autodesk Maya, Autodesk 3ds Max, Autodesk Revit, Rhinoceros 3D, Blender, ZBrush, SketchUp and Cinema 4D. The criteria of comparison will include the price, the functionality and the difficulty of the software. We will also consider other differences of the software like its intended uses, targeted users and the respective pros and cons of each 3D modelling software.
COMPARISON
2.1. Prices
The different 3D modelling software comes at different price points. Hence, we will compare the prices of the different softwares. Blender and SketchUp are available for free. Blender is a free software for any purpose, including commercially or for education. SketchUp is available for free but also offers different plans with different levels of function at different rates. The most expensive version of Sketchup, SketchUp Studio is priced at USD$1199/year (approximately SGD$1614). Autodesk 3ds Max and Autodesk Maya are both priced at SGD$2132/year whereas Autodesk Revit is available at SGD$399/month or SGD$3190 for a year. ZBrush is available at SGD$39.95/month or SGD$179.95 for 6 months or SGD$895 for a single perpetual license while, Rhinoceros 3D is available at USD$995 (approximately SGD$1340) for commercial use and USD$495 (approximately SGD$666) for students. Cinema 4D is available from USD$59.99/month to USD$116.99/month (approximately SGD$81to SGD$159) or a perpetual license for USD$3495 (approximately SGD$4746). From this, Blender is the cheapest 3D modelling software while SketchUp is a freemium software. The other software all come at a price of at least a few hundred dollars and up to a few thousand dollars and are mostly on a subscription basis.
2.2. Functions, features and the intended users of each software
2.2.1. Blender
For Blender, a completely free software, it has many functions. Blender can allow for 3D modelling, sculpting, animation and rigging, rendering, simulation, compositing and motion tracking and even video editing. Blender has digital sculpting tools that are required for digital production. On top of that, it has an extensive Python API which allows for scripting and customization. Blender’s extensive modelling tools also allow for the creation of detailed 3D models, which can also be animated in Blender. Blender being a community-driven project, is intended for everyone’s use and is used to create 3D models, animations, simulations and for digital production.
2.2.2. SketchUp
SketchUp includes drawing layout functionality, surface rendering and supports third-party plugins. SketchUp is used for a wide range of 3D modelling projects like architectural, interior design, landscaping and video game design. SketchUp models can also be printed with 3D printers. SketchUp’s functions mainly focuses on architecture and interior design, and are mainly used by architects and interior designers.
2.2.3. Autodesk 3ds Max
Autodesk 3ds Max is a web-based graphic design software, specifically for 3D rendering and animation and is part of Autodesk suite of software for construction, engineering and architecture. Autodesk 3ds Max is capable of rendering high-definition details, making virtual objects such as characters, scenes and infrastructure more realistic and detailed. Its animation tools allow you to simulate scenarios and physics like the dynamics of a variety of fluids, gases and solids. Autodesk 3ds Max has a rich library of 3D content and a wide range of templated modelling, effects and texturing tools. Autodesk 3ds Max has an open API to help you integrate external apps. Autodesk 3ds Max is mostly used by games developers and architectural designers.
2.2.4. Autodesk Maya
Within Autodesk Maya, there are scene assembly and modelling tools to create realistic environmental elements such as trees, foliage, and rocks, as well as organic locations and terrain. Autodesk Maya also have features such as “Subdivision Surfacing” modelling to create complex architectural forms with realistic programmatic elements. With its advanced tools and high-end plugins, Autodesk Maya software is capable of creating some incredibly impressive 3D Art. Autodesk Maya provides high-end character and effects toolsets along with increased productivity for modelling, texturing, and shader creation tasks. Autodesk Maya is widely used in the animation industry across the world.
2.2.5. Rhinoceros 3D
Rhinoceros 3D is a free form surface modeller that uses the modelling by curves technique (NURBS or Non-Uniform Rational Basis Spline). NURBS is a mathematical model that renders curves and surfaces in computer graphics. This kind of modelling optimize the number of faces forming the object’s surface and offers great flexibility and precision. Rhinoceros 3D includes a complete set of tools such as all the general tools, transform tools, points and curves options, surface features, and a lot of mesh tools to export your meshes or convert NURBS to meshes for display or rendering. Rhinoceros 3D modelling software can also provide deep analysis and visualization features. Rhinoceros 3D is used by architects and interior designers as well as product and graphic designers.
2.2.6. ZBrush
Zbrush is a radical departure from convention when it comes to modelling objects in 3D, as it uses a brush system to enable designers to shape virtual clay in real-time. The digital sculpting and painting program that has revolutionized the 3D industry with its powerful features and intuitive workflows. Built within an elegant interface, ZBrush offers the world’s most advanced tools for today’s digital artists. Designed around a principle of circularity, the menus in ZBrush work together in a non-linear and mode-free method. ZBrush also provides all of the tools needed to quickly sketch out a 2D or 3D concept. ZBrush users are enabled by its powerful software processing allowing users to paint with billions of polygons. ZBrush is used by everyone from art enthusiast to major film and games studios.
2.2.7. Autodesk Revit
Autodesk Revit is a versatile Business Information Modelling (BIM) system which is comprised of several toolsets for MEP and structural engineering, construction and architectural design. The BIM workflow maximizes productivity and helps to streamline design and documentation workflows; speeding projects from design to completion while automating updates. Autodesk Revit offers many other tools and features that can enhance productivity such as Physical Materials for Building Performance Analysis, Autodesk 360 Integration, Worksharing, Construction Modeling, Bidirectional Associativity, Parametric Components. Autodesk Revit is used by architects and other building professionals to help reduce risk, obtain insight into how buildings will perform before construction begins, develop better quality designs.
2.2.8. Cinema 4D
Cinema 4D includes a wide range of functions from modelling, texturing, animation and rendering. It is capable of procedural and polygonal modelling, animating, lighting, texturing and rendering. It also comes with a sound workflow that allows for simple integration with compositing application pipelines making it a multi-purpose application that can be used in films and in motion graphics. Cinema 4D is commonly used in the film industry. Examples of movies that used Cinema 4D include Monster House, Spiderman 3, Chronicles of Narnia and Beowulf.
2.3. Difficulty
2.3.1. Blender
Blender’s interface is complicated to learn as there are so many keyboard shortcuts and tools are hard to find. Blender is rather complex graphical and programming system and there are many things to learn such as video, 2D painting, rendering, audio and programming.
2.3.2. SketchUp
SketchUp’s toolset is familiar, it’s interface is straightforward, and its plugin compatibility is robust and there are no more unsettling stigmas associated with using the program.
2.3.3. Autodesk 3Ds Max
Autodesk 3Ds Max is not difficult to learn as it starts to show automated results after a few steps and the interface is relatively easy to understand.
2.3.4. Autodesk Maya
Autodesk Maya has a steep learning curve and its difficult to learn as its interface is very complicated.
2.3.5. Rhinoceros 3D
The interface of Rhinoceros 3D is fairly intuitive and is comparatively easy to understand but generating complex forms does require a firm knowledge of principles pertaining to NURBS surface modelling.
2.3.6. ZBrush
ZBrush has a very non-intuitive interface and has a steep learning curve. It is difficult to learn where all the tools are and what does those terminologies meant.
2.3.7. Autodesk Revit
Autodesk Revit offers an astounding amount of flexibility and complexity while maintaining a gradual learning curve that is easy for beginners to digest.
2.3.8. Cinema 4D
Cinema 4D has an intuitive interface. Its flexible interface makes it easier to use. It is easier to learn as compared to other 3D modelling software.
CONCLUSION
Blender is the cheapest among the rest of the software. SketchUp provides a free version but there are other versions of SketchUp with more features and function that requires subscription fees. Whereas Autodesk Revit is the most expensive with a subscription fee of SGD$399/month or SGD$3190 for a year. SketchUp, Autodesk 3Ds Max, Autodesk Revit and Cinema 4D are the easiest to learn, while Blender, Autodesk Maya and ZBrush are the hardest to learn. Rhinoceros 3D has an easy learning curve of creating basic geometries, generating complex forms does require a firm knowledge of principles pertaining to NURBS surface modelling as NURBS modelling methodology, especially when continuously smooth forms need to be created, can become quite complex.
ACKNOWLEDGEMENT
We would like to thank our mentor Mr Chen Yi and Ms Fiona Liausvia for giving us the opportunity to learn with them as well as their guidance and support and we would also want to thank our school mentor Mr Ivan Sum for his encouragement throughout our WOW programme.
REFERENCES
One of the knowledge I learnt is the the different modelling techniques and the functions in Blender. There are many different ways of modelling the same 3D model, hence knowing a wide range of 3D modelling techniques will facilitate the process of 3D modelling. We have just play around with the 3D model and identify the most efficient way to create the desired shape. Instead of repeating the same technique we can use other models to create our desired shape.
Another knowledge I learn is Unity. For Unity I have learnt a lot about the software from knowing how to navigate to the physic engine that unity provides such as rigid body and collider. I also learnt a lot of programming (C#) and get to know more about the language and the formatting. I also learn how to code for example to move an item.
For the report I learn the important skill of researching on the different product available before making a choice this is very important because we should know the function the software provide and the pros and cons of the software so that it will be easier for us to work with the software.
We got to be mentor by researchers that have a lot of experience in the field of research, they provided us many advice on how we can conduct our research and help us make full use of the resource that are given to us.
We also had to cramp in a lot of information for the first 2 week for Blender and Unity. We just kept on practicing and learning all the different function which helps us remember the different techniques quicker and this hones our skill for 3D modelling and helps us find the fastest way to model.
I have learn that being passionate about the project is the most important thing. Passion fuels curiosity which makes us want to find out more about the project and even if we face any difficulties, passion allow us to be focus and explore to find a way to resolve the problem.