• Finding Ways To Keep Up With

    Comments Off on Finding Ways To Keep Up With
    June 27, 2020 /  Foods & Culinary

    Factors To Consider When Hiring A vac Company

    For you to appreciate efficiency when it comes to HVAC repair installation and repairs then the HVAC company that you had should be ready to guarantee that they can give you the same services. You need to know that a lot of HVAC companies are in existence these days and this means that you might not necessarily determine the most experienced company from the rest. The implication is that instead of running around looking for an HVAC contractor you should take your time to find out every detail about the HVAC contractor before you eventually hire them. There are several ways that you can use to get access to the best HVAC company and the main one is looking for recommendations from some of the people you know as well as your family. In case you know someone who has been hiring the services of an HVAC company it means that your journey is shortened. What you need to do is just ask about how the HVAC company goes about handling repairs and installation services. In this case, you need to keep an open mind when you are seeking a recommendation for the best HVAC company since this is the only way you can get the best. Sometimes HVAC companies that give the best services charge their service is quite expensive than the rest. What this means is that the reputation of an HVAC company can determine how much money they are going to charge you for the services.

    You can also try to locate the website of the HVAC company you intend to hire before contacting them. The website of the HVAC company is another tool that is likely it will help you to gather all the information you need about the HVAC company in question. The company is not only going to display some of the services that they offer but all that they are saying is likely to be backed up by customer reviews and comments. All homeowners who seek the services of a specific HVAC company in large numbers pan always portray that the HVAC company is efficient in their services. The result is a company is likely to be preferred by many customers only if it satisfies all the customer’s needs. On the website of the HVAC company you can also find out about whether they hire certified contractors and to what extent they are likely to prove these claims.

    The other factor you need to consider before hiring an HVAC company is your budget. Before you can consider hiring an HVAC company you should have written all that you need to achieve from the HVAC company. When are you intend to have an HVAC system installation or better still haven’t repaired it means that you should understand the average market price for these services? With this information, you can always get in touch with the HVAC company that is going to guarantee affordability alongside efficient HVAC services. Looking for a company that offers cheap services is not the best way to go since they might also be inefficient in HVAC services.

    Incredible Lessons I’ve Learned About

    What Has Changed Recently With ?

  • Why Aren’t As Bad As You Think

    Comments Off on Why Aren’t As Bad As You Think
    June 27, 2020 /  Financial

    Information about Lovemaking Therapists

    Most people find themselves uninterested in lovemaking therapy since they do not know if or when they need it. It can be hard to consider finding a lovemaking therapist for most people since it can be even difficult to know if your lovemaking life is considered normal or on the perfect track. For that reason, a lot of people find themselves asking a lot of questions when they come across matters related to lovemaking therapy. Additionally, most people have the fear to seek help from a lovemaking therapist even though they know they need it. Other people tend to avoid the embarrassment that they think can come along with visiting a lovemaking therapist. However, you should not be afraid of visiting your lovemaking therapist since there is nothing to be ashamed of.

    There are several benefits that you can get as an individual when you visit a lovemaking therapist. When you visit a lovemaking therapist, one of the benefits that you can get as an individual is a better understanding of lovemaking. Most people assume that they naturally understand what lovemaking is and that is where the problem comes in. There are many different things that you may not know concerning lovemaking and that is the reason why visiting a lovemaking therapist can come in handy. A lovemaking therapist can help you understand lovemaking from psychological, biological, and relational aspects. Lovemaking is made up of each and every aspect mentioned above among others. If any aspect is missing, the lovemaking experience is more likely to get diminished. When you visit a lovemaking therapist, they would do an evaluation before anything else for them to know what steps to follow concerning the treatment of the issues.

    Other than the ones mentioned above, there are several different benefits that come along with finding a lovemaking therapist. All you need to do for you to get the benefits is to find a lovemaking therapist. At first, that can sound like an easy task for most people although there are several different things that you may need to consider as you search for a lovemaking therapist. If you want to find the best lovemaking therapist, you may need to consider the following factors.

    One of the things that you may need to consider before you choose a lovemaking therapist is a length in time that they have been in the industry. When it comes to lovemaking therapy, the experience is one of the most important qualities that a lovemaking therapist should have. If a lovemaking therapist has been in the industry for a long time, they can ensure you quality services since they may have handled a lot of cases before. Secondly, you should ensure you find a lovemaking therapist that you are comfortable being around. When you have a lovemaking therapist, you would need to tell them many things. For that reason, you should find a lovemaking therapist whom you feel you are comfortable telling all your lovemaking issues that you need help with.

    What Has Changed Recently With ?

    The 10 Best Resources For

  • The Essentials of – Getting to Point A

    Comments Off on The Essentials of – Getting to Point A
    June 27, 2020 /  Sports & Athletics

    Factors To Consider When Choosing A Stone Supply Company

    When you want to stones for your building project, it is important for you to identify the right supplier. You need to look for a company that supplies a variety of stones for you to be able to make the right selection. The challenges in selecting the right one from the many options that are there. Below are tips to help you choose the best stone supply company.
    It is important for you to research for you to identify stone suppliers shops that have a good reputation. You can begin by getting recommendations from your friends, family, and contractors. Go online and have a look at the portfolio of multiple companies that specialize in selling stones. Make sure the company you select is licensed and accredited by the better business bureau. You need to be sure that their business is registered and legit. Read online reviews for you to know if they are reliable based on the experiences of their past customers.

    Another factor to consider is visiting potential shops for you to check out the different varieties of stones they sell. You need to be sure the company you select has the capability to take large orders. This is especially if you have a big project. Visiting different companies will help you pay attention to detail to ensure that the stones are consistent in thickness and size. It is advisable for you to prioritize stone supply companies that are located close to you. It will be convenient for you to access their services. You will be comfortable knowing that you can drop by at any time and make your purchase.
    It is vital for you to come up with a budget before choosing a particular stone supply company. The price differs from one supplier to another depending on the quality of materials. Get detailed quotes from potential companies for you to come up with a reasonable budget. Identify a supplier with a good reputation who charges a fair rate for their products. Take advantage of discounts and great deals especially if you intend to make a bulk order. Avoid suppliers who charge the lowest rates in the market because it could mean that their products are of the lowest quality.
    Also, make sure the stone supply company has good customer service. This is especially if you intend to be buying on a regular basis. They need to respond to your questions with professionalism and show courtesy. You need to be sure that there will be a good working relationship for you to work together for a long time. They need to also have different varieties of stones available consistently.
    Additionally, make your purchase from a stone supply company that has been in the industry for a long time. They need to have the needed experience and skills to help you make the right selection. It is an advantage for you to choose a supplier who is known to supply the stones to your building site. They should have a good track record of making timely delivery.

    What Research About Can Teach You

    The Beginner’s Guide to

  • 5 Uses For

    Comments Off on 5 Uses For
    June 27, 2020 /  Auto & Motor

    Points You Should Focus If You Are Planning On Renting a Photo Booth

    Photo booths are becoming quite popular. They are the new trend. Many people are either buying or renting a photo booth. Buying your own photo booth is a very good idea though they tend to be very expensive. The good thing is that if you buy one you will be able to save money that you would have used in hiring a professional photographer or renting one. If you do hold events and parties allowed consider buying one for yourself rather than going for the renting option.

    For someone who is under budget renting a photo booth will be a good idea for you. There are so many companies that have their own photo booths and they rent them to the public. When there is a photograph in your party or event you can be guaranteed that people will have so much fun taking photos. This option is working and it is quite affordable. When taking photos at a photo booth you together with your guests will be capturing Unforgettable moments. This is why so many people will rather have a photo booth instead of hiring the services of professional photographers. Before you rent a Photobooth it is your responsibility to ensure that you pick the right booth for your party.

    There are different types of photo booths. Make sure that you do a little bit of research on the internet so that you can have a clue on the different photo booths that are there. The information that you will cover will help you in settling for a photo booth that can be able to capture pictures of so many people all at once. Having such a booth at your party, you can be guaranteed that your guests will not feel squeezed other both when taking pictures therefor they will be comfortable at all times.

    Different companies have set different prices for the different types of photo booths that they rent out. The bigger the portable the more expensive the rental fee will be. With the high demand that is there for the booths. Companies are competing a lot when it comes to how much they have set as a rental fee. That is why with a little bit of research you will be able to find companies whose rental fee is a bit reasonable. Always go for what you can afford without straining your finances.

    Photo booths are suitable for people of all ages. If your event or party will be attended by people of different ages, whether young or old they will have a good time taking pictures at the booth. Another good thing about a photographer that it does take quality pictures meaning you will have clear copies of the pictures. With how advanced technology is the photo booths that are being made are quite advanced as it can able to save a soft copy for the renter. This means that you can easily share the pictures with all your guests.

    What I Can Teach You About

    What Do You Know About

  • The Art of Mastering

    Comments Off on The Art of Mastering
    June 27, 2020 /  Health & Fitness

    High-Quality Tutorial Services

    The education that our children are able to have is something that would be able to affect their future. The performance that students are able to show in their school or in their studies could determine how good they are going to have when they are going to choose a career later on and that is why it is something that we could give a lot of importance. There are different kinds of capabilities that we are able to find in our students and we should know that there are those that would be struggling in certain subjects while others do not have a lot of problems in them. Math is one of the most challenging subjects for a lot of students as they are just not that good in problem-solving or in dealing with numbers. Math is a very important subject as it is related to a lot of careers and things that we would encounter in the future. It is important that we are able to guide our children if they are having a hard time in math so that they would not be left behind in their lessons and so that they would not have a hard time getting a good grade in all of their subjects. We should know that we can get a tutorial service for our children in order for them to be able to have the proper advancement that is needed in their studies. Most students that are able to get a tutorial service are able to show a lot of improvement in their grades and it would surely be something that can benefit them in the future.

    We should do some research so that we can find tutorial services that are not only affordable for us and would also be accessible and have the best quality in the results that they are able to offer. We should get some information on the schedule that they have and we should also see if they are able to accommodate our child at the time where they would need to get a proper tutor. We can also determine the results from these services after a certain period of time and we can also check out some testimonials on their website that would be coming from their previous client. Doing some research could help us determine which tutorial businesses we should be dealing with as it can help us find the best ones in our area.

    The rate of these services is usually determined by the amount of time the tutorial sessions would last. There are also those that would depend on the level of education or subject that are going to be taught and it is something that we should be aware of. There are tutorial services that are given as a group as we would be able to visit their facilities in order for us to get access to the lessons that they provide. We can also get a 1 on 1 session as it is something that would be able to give us or our child with a much more thorough tutorial on their subjects and it can help them absorb their lessons a lot easier.

    Learning The Secrets About

    The Path To Finding Better

  • Getting Down To Basics with

    Comments Off on Getting Down To Basics with
    June 27, 2020 /  Personal Product & Services

    Choosing a Professional Plumber

    Plumbing and air conditioner repair are not easy tasks that can be done by anyone. If you don’t have the required skills and resources for the job, then it is wise that you consider outsourcing the services of an expert to do the repair and installation. One main reason why you should consider hiring a professional plumber is that they have the much-needed skills and experience to tackle any plumbing project. You can be sure of receiving top-tier services from a plumber who has been around for more extended periods. A professional plumber and air conditioner expert will offer you the best services because they have most likely worked on similar projects in the past. They also have the skills and tools to address your problem in the shortest time possible.

    Contrary to popular opinion, outsourcing the services of a plumber is often cost-effective. You will end up saving cash when you hire a professional than doing the tasks on your own. Doing some of these tasks on your own can be costly more so if you make an error during the repair or installation of your air conditioner. With a professional plumber on your side, you will not be required to purchase any plumbing tools or equipment. Most of these tools are always expensive, but a professional plumbing expert will always use the latest tools and equipment for your project. They also have the knowledge and expertise to operate this equipment and solving the hardest problems in plumbing.

    Plumbing issues can be quite difficult to sort on your own hence the reason why you should consider working with an expert. The best way to solve these plumbing problems from happening over and over again is by outsourcing the services of a professional plumber whom you can trust. There are however numerous options to plumbers out there who you can choose from and sometimes finding the right option for you can be challenging. To get the best deal, it is important that you consider the plumber’s level of professionalism and how long they have been in the business. There are different types of plumbers and not all of them have the skills and expertise to meet your needs. There are some of them who have specialized in certain plumbing areas and can only solve specific plumbing issues.

    Lastly, you will also need to consider the availability and schedule of the potential plumber you are about to hire. Plumbing emergencies can arise any time hence the reason why you should hire someone who can address these issues in the shortest time possible. Ensure that you go for an expert who can provide round-the-clock services to their customers because you can never know when a plumbing emergency will happen. Another factor to have in mind is the bonds and insurance coverage that they have. Plumbing jobs can be risky hence the reason why you should only work with a licensed and insured expert. Outsourcing the services of a professional plumber will always give you the assurance that your interest is protected in case of an unforeseen accident or injury.

    Tips for The Average Joe

    Valuable Lessons I’ve Learned About

  • 5 Lessons Learned:

    Comments Off on 5 Lessons Learned:
    June 27, 2020 /  Home Products & Services

    Ultimate Guide to Choosing the Best Catholic Church

    It is true that all Christian churches are guided by the bible but still different have different beliefs and cultures. The Catholic church is one of the largest Christian churches worldwide. The catholic church is headed by a pope and they believe that all humans can reconcile with Jesus through the death and resurrection and have eternal life in heaven. Members of the catholic church are called Catholics. Catholics are Christian that believe in Jesus and also believe in the pope which may not be the case with other Christians. If you want to become a catholic you should look for a catholic church to belong to. Catholic churches are the most popular churches and this means you can find many within your reach. On the contrary, not all catholic churches are the same or suites your need. Before you settle for any catholic church, it is advised that you look at a few elements that will guide you to choose the best catholic church. By reading the article below, you will have a clear understanding of the elements to consider before choosing a catholic church.

    The first element that will guide you to choose the best catholic church is asking for recommendations from people close to you like the family members, friends, and even neighbors. Asking those close to you for recommendation is the best thing that you will have to do if you want to easily find a catholic church to belong to. You are likely to have more self-belonging and feel welcomed to a catholic church that your neighbors or some of your friends also attend.

    In the second place, the location is another important element to look at when choosing a catholic church. When searching for a catholic church, it is essential to consider one that is the nearest location that you can easily access. A catholic church not far from your location is the best to choose especially because for convenience and other important reasons. With a nearby catholic church, you can save time and not be late for church.

    Thirdly, when looking for a catholic church to attend you should also look at the history of the catholic church. Find more about the background of the catholic church to know the image they have. This is essential because it will help you find a credible church that you can trust. To verify their history and image look at what the other people are saying about the church through the reviews on the catholic church’s website. The best catholic church to trust and with a good history is the one many positive reviews.

    You can also find more information about the catholic church by looking at the catholic church’s website. Check how the church conducts its programs, the events they hold, what they base their teachings, and more information that you may want to know before you settle for a catholic church. To sum up, after reading the article above you will know the elements that will help you identify the best catholic church.

    3 Tips from Someone With Experience

    The Best Advice on I’ve found

  • Finding Similarities Between and Life

    Comments Off on Finding Similarities Between and Life
    June 27, 2020 /  Personal Product & Services

    The Impact Of Blogs During This COVID 19 Pandemic

    As days are going by, so are the changes that we are experiencing in the world. There are new challenges that are emerging, new technology, among many other things. There is a need for people to keep adjusting to the changes that are taking place. When new technology is introduced into the market, it is only by adjusting that you will be able to compete with the others in the world. Currently, there is a new virus that has currently challenged the whole world. This is a virus that is spreading at a very high rate. It is essential for you to ensure you understand this virus well for you to know how it is being spread and the measures you can take to prevent its spread.

    Blogs have taken a good step to enlighten people about this virus. There are many blogs that have already been produced and are available on the internet. The good thing about these blogs is the fact that they have been written in different languages. This has helped people to better understand COVID 19. This is because every individual is able to read their preferred language. With a better understanding of coronavirus, individuals have been able to take the appropriate measures. This has led to a decline at the rate at which this virus is spreading.

    Those countries that started suffering from this virus are able through blogs to enlighten other countries on the appropriate measures to take. It is important for an individual to avoid public places. Keeping social distance is being encouraged a lot and better still, individuals are being encouraged to stay at home. These are some of the measures that have greatly helped in lowering the rate at which this virus is spreading. The fact that many individuals are able to access the internet, blogs have been very effective in enlightening people on the right measures to take.

    This is because there are many devices that are able to load blogs. You can be able to read them from your phone and other internet-enabled devices. You will, therefore, be able to access the blogs and read at whichever time of the day. The costs of downloading these blogs are also low as compared to other options available over the internet. There are different experts who have realized the potential in these blogs. They are therefore writing blogs that are professional and there message availed is becoming credential with time.

    Washing of hands and maintaining hygiene is a measure that is being advocated by many. These are some of the lessons that have shared by those who have managed to learn. It is essential for people to also understand that all is not lost. There are those who have to be able to fully recover from the virus. Some of these individuals have written blogs with the aim of encouraging those who could be affected by the virus in one way or the other. When we remain united, we will be able to fight this virus. Through blogs and other channels, together we are strong.

    5 Uses For

    What I Can Teach You About

  • Study: My Understanding of

    Comments Off on Study: My Understanding of
    June 27, 2020 /  Home Products & Services

    Choosing the Best Sex Therapist

    You need to know that many people out there are struggling with sex problems. Note that problems related to sexual matters may cause a lot of depression and also a lot of stress because they may affect your self-esteem. Those who are struggling with sexual problems may not be willing to share with others because they think that such matters are private and should not be shared. This may affect the living of people because they may not have peace of mind and they not have someone to advise them on what is right for them. It is important to know that sex is a very crucial thing in every marriage or relationship and so in case of a problem you should seek advice from a sex therapist. Going to a sex therapist on a regular basis is very important because it will help you to deal with your problems in the right way without much stress and struggles. It is very important for every couple to make sure that they have a personal sex therapist who will guide them and help them improve their sexual life. Research has shown that many people see the need of going to a sex therapist when they are struggling with sexual difficulties. That is the time when they go out to look for a therapist that will help them to get a solution to their problem.

    Choosing the best sex therapist may be an uphill task to many people especially those who are in a hurry of finding one. This is because those who want to find any sex therapist quickly may not have time to make comparisons and know the one that will perfectly suit their needs. Paying a sex therapist may not be an easy thing because a lot of money will be needed to pay for those services that you will be provided with. Choosing a sex therapist that will be good enough to provide you with a solution to the problem you are struggling with is good because it will help you to avoid putting your money and other resources into waste. Note that sex therapists are very important in society this is because they are those who can help people deal with their sexual matters which are considered to be so private. During your search for the best sex therapist, you will come across so many people out there who claim to be good sex therapists. Note that not all these may be suitable for your needs because some of them may not be experienced enough to provide people with sex therapy. Navigating through all these sex therapists is good because it will help you to know the one that will be good for your needs.

    To be in a good position to select a sex therapist that will help you to solve your problem then you should take your time and put the following factors into account. One of those things that should be considered when choosing a sex therapist is the experience levels of that particular therapist.

    On : My Thoughts Explained

    A Quick Rundown of

  • The Evolution of Direct3D

    Comments Off on The Evolution of Direct3D
    June 27, 2020 /  Computer Technology, Programming

    * UPDATE: Be sure to read the comment thread at the end of this blog, the discussion got interesting.

    It’s been many years since I worked on Direct3D and over the years the technology has evolved Dramatically. Modern GPU hardware has changed tremendously over the years Achieving processing power and capabilities way beyond anything I dreamed of having access to in my lifetime. The evolution of the modern GPU is the result of many fascinating market forces but the one I know best and find most interesting was the influence that Direct3D had on the new generation GPU’s that support Welcome to Thunderbird processing cores, billions of transistors more than the host CPU and are many times faster at most applications. I’ve told a lot of funny stories about how political and Direct3D was created but I would like to document some of the history of how the Direct3D architecture came about and the architecture that had profound influence on modern consumer GPU’s.

    Published here with this article is the original documentation for Direct3D DirectX 2 when it was first Introduced in 1995. Contained in this document is an architecture vision for 3D hardware acceleration that was largely responsible for shaping the modern GPU into the incredibly powerful, increasingly ubiquitous consumer general purpose supercomputers we see today.

    D3DOVER
    The reason I got into computer graphics was NOT an interest in gaming, it was an interest in computational simulation of physics. I Studied 3D at Siggraph conferences in the late 1980’s Because I wanted to understand how to approach simulating quantum mechanics, chemistry and biological systems computationally. Simulating light interactions with materials was all the rage at Siggraph back then so I learned 3D. Understanding light 3D mathematics and physics made me a graphics and color expert roomates got me a career in the publishing industry early on creating PostScript RIP’s (Raster Image Processors). I worked with a team of engineers in Cambridge England creating software solutions for printing color graphics screened before the invention of continuous tone printing. That expertise got me recruited by Microsoft in the early 1990’s to re-design the Windows 95 and Windows NT print architecture to be more competitive with Apple’s superior capabilities at that time. My career came full circle back to 3D when, an initiative I started with a few friends to re-design the Windows graphics and media architecture (DirectX) to support real-time gaming and video applications, resulted in gaming becoming hugely strategic to Microsoft. Sony Introduced in a consumer 3D game console (the Playstation 1) and being responsible for DirectX it was incumbent on us to find a 3D solution for Windows as well.

    For me, the challenge in formulating a strategy for consumer 3D gaming for Microsoft was an economic one. What approach to consumer 3D Microsoft should take to create a vibrant competitive market for consumer 3D hardware that was both affordable to consumers AND future proof? The complexity of realistically simulating 3D graphics in real time was so far beyond our capabilities in that era that there was NO hope of choosing a solution that was anything short of an ugly hack that would produce “good enough” for 3D games while being very far removed from the ideal solutions mathematically we had implemented a little hope of seeing in the real-world during our careers.

    Up until that point only commercial solutions for 3D hardware were for CAD (Computer Aided Design) applications. These solutions worked fine for people who could afford hundred thousand dollars work stations. Although the OpenGL API was the only “standard” for 3D API’s that the market had, it had not been designed with video game applications in mind. For example, texture mapping, an essential technique for producing realistic graphics was not a priority for CAD models roomates needed to be functional, not look cool. Rich dynamic lighting was also important to games but not as important to CAD applications. High precision was far more important to CAD applications than gaming. Most importantly OpenGL was not designed for highly interactive real-time graphics that used off-screen video page buffering to avoid tearing artifacts during rendering. It was not that the OpenGL API could not be adapted to handle these features for gaming, simply that it’s actual market implementation on expensive workstations did not suggest any elegant path to a $ 200 consumer gaming cards.

    TRPS15In the early 1990’s computer RAM was very expensive, as such, early 3D consumer hardware designs optimized for minimal RAM requirements. The Sony Playstation 1 optimized for this problem by using a 3D hardware solution that did not rely on a memory intensive the data structure called a Z-buffer, instead they used a polygon level sorting algorithm that produced ugly intersections between moving joints. The “Painters Algorithm” approach to 3D was very fast and required little RAM. It was an ugly but pragmatic approach for gaming that would have been utterly unacceptable for CAD applications.

    In formulating the architecture for Direct3D we were faced with difficult choices Similar enumerable. We wanted the Windows graphics leading vendors of the time; ATI, Cirrus, Trident, S3, Matrox and many others to be Able to Compete with one another for rapid innovation in 3D hardware market without creating utter chaos. The technical solution that Microsoft’s OpenGL team espoused via Michael Abrash was a driver called 3DDDI models (3D Device Driver Interface). 3DDDI was a very simple model of a flat driver that just supported the hardware acceleration of 3D rasterization. The complex mathematics associated with transforming and lighting a 3D scene were left to the CPU. 3DDDI used “capability bits” to specify additional hardware rendering features (like filtering) that consumer graphics card makers could optionally implement. The problem with 3DDDI was that it invited problems for game developers out of the gate. There were so many cap-bits every game that would either have to support an innumerable number of feature combinations unspecified hardware to take advantage of every possible way that hardware vendors might choose to design their chips producing an untestable number of possible hardware configurations and a consumer huge amount of redundant art assets that the games would not have to lug around to look good on any given device OR games would revert to using a simple set of common 3D features supported by everyone and there would be NO competitive advantage for companies to support new hardware 3D capabilities that did not have instant market penetration. The OpenGL crowd at Microsoft did not see this as a big problem in their world Because everyone just bought a $ 100,000 workstation that supported everything they needed.

    The realization that we could not get what we needed from the OpenGL team was one of the primary could be better we Decided to create a NEW 3D API just for gaming. It had nothing to do with the API, but with the driver architecture underneath Because we needed to create a competitive market that did not result in chaos. In this respect the Direct3D API was not an alternative to the OpenGL API, it was a driver API designed for the sole economic purpose of creating a competitive market for 3D consumer hardware. In other words, the Direct3D API was not shaped by “technical” requirements so much as economic ones. In this respect the Direct3D API was revolutionary in several interesting ways that had nothing to do with the API itself but rather the driver architecture it would rely on.

    When we Decided to acquire a 3D team to build with Direct3D I was chartered surveying the market for candidate companies with the right expertise to help us build the API we needed. As I have previously recounted we looked at Epic Games (creators of the Unreal engine), Criterion (later acquired by EA), Argonaut and finally Rendermorphics. We chose Rendermorphics (based in London) Because of the large number of 3D quality engineers and the company employed Because The founder, Servan Kiondijian, had a very clear vision of how consumer 3D drivers should be designed for maximum future compatibility and innovation. The first implementation of the Direct3D API was rudimentary but quickly intervening evolved towards something with much greater future potential.

    D3DOVER lhanded
    Whoops!

    My principal memory from that period was a meeting in roomates I, as the resident expert on the DirectX 3D team, was asked to choose a handedness for the Direct3D API. I chose a left handed coordinate system, in part out of personal preference. I remember it now Only because it was an arbitrary choice that by the caused no end of grief for years afterwards as all other graphics authoring tools Adopted the right handed coordinate system to the OpenGL standard. At the time nobody knew or believed that a CAD tool like Autodesk would evolve up to become the standard tool for authoring game graphics. Microsoft had acquired Softimage with the intention of displacing the Autodesk and Maya anyway. Whoops …

    The early Direct3D HAL (Hardware Abstraction Layer) was designed in an interesting way. It was structured vertically into three stages.

    DX 2 HAL

    The highest was the most abstract layer transformation layer, the middle layer was dedicated to lighting calculations and the bottom layer was for rasterization of the finally transformed and lit polygons into depth sorted pixels. The idea behind this vertical structure driver was to provide a relatively rigid feature path for hardware vendors to innovate along. They could differentiate their products from one another by designing hardware that accelerated increasingly higher layers of the 3D pipeline resulting in greater performance and realism without incompatibilities or a sprawling matrix of configurations for games to test against art or requiring redundant assets. Since the Direct3D API created by Rendermorphics Provided a “pretty fast” implementation software for any functionality not accelerated by the hardware, game developers could focus on the Direct3D API without worrying about myriad permutations of incompatible hardware 3D capabilities. At least that was the theory. Unfortunately like the 3DDDI driver specification, Direct3D still included capability bits designed to enable hardware features that were not part of the vertical acceleration path. Although I actively objected to the tendency of Direct3D capability to accumulate bits, the team felt extraordinary competitive pressure from Microsoft’s own OpenGL group and from the hardware vendors to support them.

    The hardware companies, seeking a competitive advantage for their own products, would threaten to support and promote OpenGL to game developers Because The OpenGL driver bits capability supported models that enabled them to create features for their hardware that nobody else supported. It was common (and still is) for the hardware OEM’s to pay game developers to adopt features of their hardware unique to their products but incompatible with the installed base of gaming hardware, forcing consumers to constantly upgrade their graphics card to play the latest PC games . Game developers alternately hated capability bits Because of their complexity and incompatibilities but wanted to take the marketing dollars from the hardware OEM’s to support “non-standard” 3D features.

    Overall I viewed this dynamic as destructive to a healthy PC gaming economy and advocated resisting the trend OpenGL Regardless of what the people wanted or OEM’s. I believed that creating a consistent stable consumer market for PC games was more important than appeasing the hardware OEM’s. As such as I was a strong advocate of the relatively rigid vertical Direct3D pipeline and a proponent of introducing only API features that we expected up to become universal over time. I freely confess that this view implied significant constraints on innovation in other areas and a placed a high burden of market prescience on the Direct3D team.

    The result, in my estimation, was pretty good. The Direct3D fixed function pipeline, as it was known, produced a very rich and growing PC gaming market with many healthy competitors through to DirectX 7.0 and the early 2000’s. The PC gaming market boomed and grew to be the largest gaming market on Earth. It also resulted in a very interesting change in the GPU hardware architecture over time.

    Had the Direct3D HAL has been a flat driver with just the model for rasterization capability bits as the OpenGL team at Microsoft had advocated, 3D hardware makers would have competed by accelerating just the bottom layer of the 3D rendering pipeline and adding differentiating features to their hardware capability via bits that were incompatible with their competitors. The result of introducing the vertical layered architecture THING that was 3D hardware vendors were all encouraged to add features to their GPU’s more consistent with the general purpose CPU architectures, namely very fast floating point operations, in a consistent way. Thus consumer GPU’s evolved over the years to increasingly resemble general purpose CPU’s … with one major difference. Because the 3D fixed function pipeline was rigid, the Direct3D architecture afforded very little opportunity for code branching frequent as CPU’s are designed to optimize for. Achieved their GPU’s amazing performance and parallelism in part by being free to assume that little or no branching code would ever occur inside a Direct3D graphics pipeline. Thus instead of evolving one giant monolithic core CPU that has massive numbers of transistors dedicated to efficient branch prediction has as an Intel CPU, GPU has a Direct3D Hundreds to Welcome to Thunderbird simple CPU cores like that have no branch prediction. They can chew through a calculation at incredible speed confident in the knowledge that they will not be interrupted by code branching or random memory accesses to slow them down.

    DirectX 7.0 up through the underlying parallelism of the GPU was hidden from the game. As far as the game was concerned some hardware was just faster than other hardware but the game should not have to worry about how or why. The early DirectX fixed function pipeline architecture had done a brilliant job of enabling dozens of Disparate competing hardware vendors to all take different approaches to Achieving superior cost and performance in consumer 3D without making a total mess of the PC gaming market for the game developers and consumers . It was not pretty and was not entirely executed with flawless precision but it worked well enough to create an extremely vibrant PC gaming market through to the early 2000’s.

    Before I move on to discussing more modern evolution Direct3D, I would like to highlight a few other important ideas that influenced architecture in early modern Direct3D GPU’s. Recalling that in the early to mid 1990’s was relatively expensive RAM there was a lot of emphasis on consumer 3D techniques that conserved on RAM usage. The Talisman architecture roomates I have told many (well-deserved) derogatory stories about was highly influenced by this observation.

    Talsiman
    Search this blog for tags “Talisman” and “OpenGL” for many stories about the internal political battles over these technologies within Microsoft

    Talisman relied on a grab bag of graphics “tricks” to minimize GPU RAM usage that were not very generalized. The Direct3D team, Rendermorphics Heavily influenced by the founders had made a difficult choice in philosophical approach to creating a mass market for consumer 3D graphics. We had Decided to go with a more general purpose Simpler approach to 3D that relied on a very memory intensive a data structure called a Z-buffer to Achieve great looking results. Rendermorphics had managed to Achieve very good 3D performance in pure software with a software Z-buffer in the engine Rendermorphics roomates had given us the confidence to take the bet to go with a more general purpose 3D Simpler API and driver models and trust that the hardware RAM market and prices would eventually catch up. Note however that at the time we were designing Direct3D that we did not know about the Microsoft Research Groups “secret” Talisman project, nor did they expect that a small group of evangelists would cook up a new 3D API standard for gaming and launch it before their own wacky initiative could be deployed. In short one of the big bets that Direct3D made was that the simplicity and elegance of Z-buffers to game development were worth the risk that consumer 3D hardware would struggle to affordably support them early on.

    Despite the big bet on Z-buffer support we were intimately aware of two major limitations of the consumer PC architecture that needed to be addressed. The first was that the PC bus was generally very slow and second it was much slower to copy the data from a graphics card than it was to copy the data to a graphics card. What that generally meant was that our API design had to growing niche to send the data in the largest most compact packages possible up to the GPU for processing and absolutely minimize any need to copy the data back from the GPU for further processing on the CPU. This generally meant that the Direct3D API was optimized to package the data up and send it on a one-way trip. This was of course an unfortunate constraint Because there were many brilliant 3D effects that could be best accomplished by mixing the CPU’s branch prediction efficient and robust floating point support with the GPU’s parallel rendering incredible performance.

    One of the fascinating Consequences of that constraint was that it forced the GPU’s up to become even more general purpose to compensate for the inability to share the data with the CPU efficiently. This was possibly the opposite of what Intel intended to happen with its limited bus performance, Because Intel was threatened by the idea that the auxiliary would offload more processing cards from their work thereby reducing the CPU’s Intel CPU’s value and central role to PC computing. It was reasonably believed at that time that Intel Deliberately dragged their feet on improving PC performance to deterministic bus a market for alternatives to their CPU’s for consumer media processing applications. Earlier Blogs from my recall that the main REASON for creating DirectX was to Prevent Intel from trying to virtualize all the Windows Media support on the CPU. Intel had Adopted a PC bus architecture that enabled extremely fast access to system RAM shared by auxiliary devices, it is less Likely GPU’s that would have evolved the relatively rich set of branching and floating point operations they support today.

    To Overcome the fairly stringent performance limitations of the PC bus a great deal of thought was put into techniques for compressing and streamlining DirectX assets being sent to the GPU performance to minimize bus bandwidth limitations and the need for round trips from the GPU back to the CPU . The early need for the rigid 3D pipeline had Consequences interesting later on when we Began to explore assets streaming 3D over the Internet via modems.

    We Recognized early on that support for compressed texture maps would Dramatically improve bus performance and reduce the amount of onboard RAM consumer GPU’s needed, the problem was that no standards Existed for 3D texture formats at the time and knowing how fast image compression technologies were evolving at the time I was loathe to impose a Microsoft specified one “prematurely” on the industry. To Overcome this problem we came up with the idea of ​​”blind compression formats”. The idea, roomates I believe was captured in one of the many DirectX patents that we filed, had the idea that a GPU could encode and decode image textures in an unspecified format but that the DirectX API’s would allow the application to read and write from them as though they were always raw bitmaps. The Direct3D driver would encode and decode the image data is as Necessary under the hood without the application needing to know about how it was actually being encoded on the hardware.

    By 1998 3D chip makers had begun to devise good quality 3D texture formats by DirectX 6.0 such that we were Able to license one of them (from S3) for inclusion with Direct3D.

    http://www.microsoft.com/en-us/news/press/1998/mar98/s3pr.aspx

    DirectX 6.0 was actually the first version of DirectX that was included in a consumer OS release (Windows 98). Until that time, DirectX was actually just a family of libraries that were shipped by the Windows games that used them. DirectX was not actually a Windows API until five generations after its first release.

    DirectX 7.0 was the last generation of DirectX that relied on the fixed function pipeline we had laid out in DirectX 2.0 with the first introduction of the Direct3D API. This was a very interesting transition period for Direct3D for several could be better;

    1) The original founders DirectX team had all moved on,

    2) Microsoft’s internal Talisman and could be better for supporting OpenGL had all passed

    3) Microsoft had brought the game industry veterans like Seamus Blackley, Kevin Bacchus, Stuart Moulder and others into the company in senior roles.

    4) Become a Gaming had a strategic focus for the company

    DirectX 8.0 marked a fascinating transition for Direct3D Because with the death of Talisman and the loss of strategic interest in OpenGL 3D support many of the people from these groups came to work on Direct3D. Talisman, OpenGL and game industry veterans all came together to work on Direct3D 8.0. The result was very interesting. Looking back I freely concede that I would not have made the same set of choices that this group made for DirectX 8.0 in chi but it seems to me that everything worked out for the best anyway.

    Direct3D 8.0 was influenced in several interesting ways by the market forces of the late 20th century. Microsoft largely unified against OpenGL and found itself competing with the Kronos Group standards committee to advance faster than OpenGL Direct3D. With the death of SGI, control of the OpenGL standard fell into the hands of the 3D hardware OEM’s who of course wanted to use the standard to enable them to create differentiating hardware features from their competitors and to force Microsoft to support 3D features they wanted to promote. The result was the Direct3D and OpenGL Became much more complex and they tended to converge during this period. There was a stagnation in 3D feature adoption by game developers from DirectX 8.0 to DirectX 11.0 through as a result of these changes. Became creating game engines so complex that the market also converged around a few leading search providers Including Epic’s Unreal Engine and the Quake engine from id software.

    Had I been working on Direct3D at the time I would have stridently resisted letting the 3D chip lead Microsoft OEM’s around by the nose chasing OpenGL features instead of focusing on enabling game developers and a consistent quality consumer experience. I would have opposed introducing shader support in favor of trying to keep the Direct3D driver layer as vertically integrated as possible to Ensure conformity among hardware vendors feature. I also would have strongly opposed abandoning DirectDraw support as was done in Direct3D 8.0. The 3D guys got out of control and Decided that nobody should need pure 2D API’s once developers Adopted 3D, failing to recognize that simple 2D API’s enabled a tremendous range of features and ease of programming that the majority of developers who were not 3D geniuses could Easily understand and use. Forcing the market to learn 3D Dramatically constrained the set of people with the expertise to adopt it. Microsoft later discovered the error in this decision and re-Introduced DirectDraw as the Direct2D API. Basically letting the Direct3D 8.0 3D design geniuses made it brilliant, powerful and useless to average developers.

    At the time that the DirectX 8.0 was being made I was starting my first company WildTangent Inc.. and Ceased to be closely INVOLVED with what was going on with DirectX features, however years later I was Able to get back to my roots and 3D took the time to learn Direct3D programming in DirectX 11.1. Looking back it’s interesting to see how the major architectural changes that were made in DirectX 8 resulted in the massively convoluted and nearly incomprehensible Direct3D API we see today. Remember the 3 stage pipeline DirectX 2 that separated Transformation, lighting and rendering pipeline into three basic stages? Here is a diagram of the modern DirectX 11.1 3D pipeline.

    DX 11 Pipeline

    Yes, it grew to 9 stages and 13 stages when arguably some of the optional sub-stages, like the compute shader, are included. Speaking as somebody with an extremely lengthy background in very low-level 3D graphics programming and I’m Embarrassed to confess that I struggled mightily to learn programming Direct3D 11.1. Become The API had very nearly incomprehensible and unlearnable. I have no idea how somebody without my extensive background in 3D and graphics could ever begin to learn how to program a modern 3D pipeline. As amazingly powerful and featureful as this pipeline is, it is also damn near unusable by any but a handful of the most antiquated brightest minds in 3D graphics. In the course of catching up on my Direct3D I found myself simultaneously in awe of the astounding power of modern GPU’s and where they were going and in shocked disgust at the absolute mess the 3D pipeline had Become. It was as though the Direct3D API had Become a dumping ground for 3D features that every OEM DEMANDED had over the years.

    Had I not enjoyed the benefit of the decade long break from Direct3D involvement Undoubtedly I would have a long history of bitter blogs written about what a mess my predecessors had made of a great and elegant vision for the consumer 3D graphics. Weirdly, however, leaping forward in time to the present day, I am forced to admit that I’m not sure it was such a bad thing after all. The result of stagnation gaming on the PC as a result of the mess Microsoft and the OEMs made of the Direct3D API was a successful XBOX. Having a massively fragmented 3D API is not such a problem if there is only one hardware configuration to support game developers have, as is the case with a game console. Direct3D shader 8.0 support with early primitive was the basis for the first Xbox’s graphics API. For the first selected Microsoft’s XBOX NVIDIA NVIDIA chip giving a huge advantage in the 3D PC chip market. DirectX 9.0, with more advanced shader support, was the basis for the XBOX 360, Microsoft roomates selected for ATI to provide the 3D chip, AMD this time handing a huge advantage in the PC graphics market. In a sense the OEM’s had screwed Themselves. By successfully Influencing Microsoft and the OpenGL standards groups to adopt highly convoluted graphics pipelines to support all of their feature sets, they had forced Themselves to generalize their GPU architectures and the 3D chip market consolidated around a 3D chip architecture … whatever Microsoft selected for its consoles.

    The net result was that the retail PC game market largely died. It was simply too costly, too insecure and too unstable a platform for publishing high production value games on any longer, with the partial exception of MMOG’s. Microsoft and the OEM’s had conspired together to kill the proverbial golden goose. No biggie for Microsoft as they were happy to gain complete control of the former PC gaming business by virtue of controlling the XBOX.

    From the standpoint of the early DirectX vision, I would have said that this outcome was a foolish, shortsighted disaster. Microsoft had maintained a little discipline and strategic focus on the Direct3D API they could have ensured that there were NO other consoles in existence in a single generation by using the XBOX XBOX to Strengthen the PC gaming market rather than inadvertently destroying it. While Microsoft congratulates itself for the first successful U.S. launch of the console, I would count all the gaming dollars collected by Sony, Nintendo and mobile gaming platforms over the years that might have remained on Microsoft platforms controlled Microsoft had maintained a cohesive strategy across media platforms. I say all of this from a past tense perspective Because, today, I’m not so sure that I’m really all that unhappy with the result.

    The new generation of consoles from Sony AND Microsoft have Reverted to a PC architecture! The next generation GPU’s are massively parallel, general-purpose processors with intimate access to the shared memory with the CPU. In fact, the GPU architecture Became so generalized that a new pipeline stage was added in DirectX 11 DirectCompute called that simply allowed the CPU to bypass the entire convoluted Direct3D graphics pipeline in favor of programming the GPU directly. With the introduction of DirectCompute the promise of simple 3D programming returned in an unexpected form. Modern GPU’s have Become so powerful and flexible that the possibility of writing cross 3D GPU engines directly for the GPU without making any use of the traditional 3D pipeline is an increasingly practical and appealing programming option. From my perspective here in the present day, I would anticipate that within a few short generations the need for the traditional Direct3D and OpenGL APIs will vanish in favor of new game engines with much richer and more diverse feature sets that are written entirely in device independent shader languages ​​like Nvidia’s CUDA and Microsoft’s AMP API’s.

    Today, as a 3D physics engine and developer I have never been so excited about GPU programming Because of the sheer power and relative ease of programming directly to the modern GPU without needing to master the enormously convoluted 3D pipelines associated with Direct3D and OpenGL API’s. If I were responsible for Direct3D strategy today I would be advocating dumping the investment in traditional 3D pipeline in favor of Rapidly opening direct access to a rich GPU programming environment. I personally never imagined that my early work on Direct3D, would, within a couple decades, Contribute to the evolution of a new kind of ubiquitous processor that enabled the kind of incredibly realistic and general modeling of light and physics that I had learned in the 1980 ‘s but never believed I would see computers powerful enough to models in real-time during my active career.

    Tags: , , , ,