Jump to content
  • Advertisement
Sign in to follow this  
leonard2012

How to draw textured and textureless objects simultaneously

This topic is 2277 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am new to D3D programming and learning the book "Introduction to 3D game programming with DirectX 10". Now I want to draw multiple graphics objects in the client area. Most of the objects including geometric shapes (lines, polygons), symbols are textureless, whereas a few objects such as terrain map, satellite images have textures. I don't know how to draw these textured and textureless objects at the same time. The examples in the book are proposed to render either textured objects, or textureless objects, but not both.
It seems that I have to define separate data structures (vertex, vertex input layout, effects) for both categories. But what about pixel shader and vertex shader defined in effect file (.fx)? There has to be only one vertex shader and only one pixel shader in effect file.

Share this post


Link to post
Share on other sites
Advertisement
What you need to do is to create two shaders (each in their own effect file), and switch shaders between draw calls, in the same way that you can swap textures between draw calls.

If the book doesn't cover that then you might want to find another one!

Share this post


Link to post
Share on other sites

What you need to do is to create two shaders (each in their own effect file), and switch shaders between draw calls, in the same way that you can swap textures between draw calls.

If the book doesn't cover that then you might want to find another one!

Thank you very much Adam_42.
My book does not cover the topic and I will do some research on how to switch shaders in Direct3D. By the way, do you have some hands-on code samples?

Share this post


Link to post
Share on other sites

But what about pixel shader and vertex shader defined in effect file (.fx)? There has to be only one vertex shader and only one pixel shader in effect file.


I'm not familiar with DX10, but at least in DX9 (I would be surprised if it was different in 10), you can have as many VS and PS in one effect file as you want. You can define multiple techniques in the same effect file, each using completely different shaders.

But I think that the common approach is to write one effect file for a specific visual look (e.g. glass, brushed metal etc.), while each effect file can have multiple techniques describing multiple ways how to render this particular look (better quality for better computers, DX8 compatible technique etc.).

So yea, you maybe should make separate fx files for textured and non-textured objects, but you don't have to.

If your application is simple, it would be maybe easier for you to put it all into a single FX file. Then you don't have to create and manage multiple effects and change them during rendering, you just swap techniques.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!