I have a product with multiple options (e.g. colour, size, material) that all effect the price that the product then sells for. Is it possible for example if someone chooses the material:walnut that it adds $200 to the current price? How can I set this up inside Craft Commerce.
Absolutely that is possible. You can see an example of a complex options set up here for example (click Add Prints to get going...):
Variants are also used for pages like these: https://imagescience.com.au/products/inkjet-papers/museo-portfolio-rag
In terms of the front end, how you set up the UI is entirely up to you - in the top case, it's a React form at work, and in the second case just a simple table really.
Each of these forms ultimately just POSTs a list of fields to a Commerce controller -
qty and optionally
notes for each item the user chooses using the form. These is posted to a Commerce
The products themselves are all set up in teh back end of Commerce as variations - see https://craftcommerce.com/docs/products for an overview of that. Basically you define a grid of variant options, each of which gets its own ID (later POSTed, as above) and has its own unique SKU (Stock Keeping Unit). Each variant can have as many or as few custom fields as you wish (as can the parent product)..and of course each variant can have its own price.
The product & variants system in Commerce is VERY powerful indeed, but does take a little getting used to. Best way to get started is to download Commerce and have a look through the sample templates to get an idea how it all works, enter some sample products in the back end, then attempt to make a few simple add to cart forms of your own - one that works for jsut products, then one that works for variant products.