Jump to content

  • Log In with Google      Sign In   
  • Create Account

How to load a bumpmap


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 Solid_Spy   Members   -  Reputation: 420

Like
0Likes
Like

Posted 13 December 2012 - 07:03 PM

Hey, I've been trying to get bumpmaps to work in my game, however, i'm not sure if i'm loading the texture right, heres the texture loading code:

D3DXCreateTextureFromFile(d3ddev, "brick_wall.png", &texture1);


D3DXCreateTextureFromFileEx(d3ddev, "brickwall_bm.png", 256, 256, D3DX_DEFAULT, D3DUSAGE_DYNAMIC, D3DFMT_Q8W8V8U8, D3DPOOL_DEFAULT, D3DX_DEFAULT, NULL, 0, NULL, NULL, &Brick_wall_bumpmap);


The first texture is the brick wall, and the last texture is the bump map.

However, I also set the texture stage states, and they don't seem to work. It takes out the lighting, and the bump map doesn't display, here's the texture stage code:

d3ddev->SetTexture(0, texture1);
  d3ddev->SetTexture(1, Brick_wall_bumpmap);
  d3ddev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
  d3ddev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
  d3ddev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
  d3ddev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
  d3ddev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
  d3ddev->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BUMPENVMAP);
  d3ddev->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
  d3ddev->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
  d3ddev->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
  d3ddev->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
  for(int i = 0; i < lights.size(); i++)
  {
   d3ddev->SetLight(i, &lights[i].l);
   d3ddev->LightEnable(i, TRUE);
  }
cube1->DrawSubset(0);
for(int i = 0; i < wList.size(); i++)
{
  wList[i].Render();
}
for(int i = 0; i < gunlist.size(); i++)
{
  gunlist[i].Render();
}

Please help! What am i doing wrong?

Sponsor:

#2 Solid_Spy   Members   -  Reputation: 420

Like
0Likes
Like

Posted 18 December 2012 - 07:18 PM

can anyone help me out on this? This topic is weeks old i think.

#3 GeniusPooh   Members   -  Reputation: 157

Like
1Likes
Like

Posted 18 December 2012 - 07:57 PM

Ah

So old method.... how about just skip this and go to normal map? and shader?

sorry to say , It's too old so . so I hate searching old document..and making correct code? :)

very sorry. but it's better for you and me :)

Beauty is only skin deep , ugly goes to bones

 

World's only 3D engine tunner and 3D engine guru.

 

and real genius inventor :) but very kind warm heart .. and having serious depression for suffering in Korea

 

www.polygonart.co.kr ( currently out dated and only Korean will change to English and new stuff when I get better condition :) sorry for that)


#4 Solid_Spy   Members   -  Reputation: 420

Like
0Likes
Like

Posted 18 December 2012 - 08:01 PM

Ah

So old method.... how about just skip this and go to normal map? and shader?

sorry to say , It's too old so . so I hate searching old document..and making correct code? Posted Image

very sorry. but it's better for you and me Posted Image


True, it's just that i don't want to make a normal map for every single texture. Making a bumpmap is so much easier. I've tried dot3 and I haven't gotten it to work yet, and I plan on using it for the future, but i at least want to learn how to do a basic bump map for speed purposes. please help!

Edited by Solid_Spy, 18 December 2012 - 08:01 PM.


#5 L. Spiro   Crossbones+   -  Reputation: 13600

Like
1Likes
Like

Posted 18 December 2012 - 09:21 PM

Converting a bump map to a normal map at run-time is easier and provides a faster run-time than trying to get bump-mapping to work with the old pipeline. It is just a Sobel filter.
Speed purposes? Then use a normal map.

I can’t help you with getting the fixed-function pipeline to work with bump-mapping. If I were to try to help you, all I would end up doing is checking online tutorials and samples, and there is no reason you can’t do that yourself.



L. Spiro
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#6 Alin   Members   -  Reputation: 391

Like
2Likes
Like

Posted 18 December 2012 - 11:02 PM

Suppose you have computed the bump map from a height map, I think you need a environment map in stage 2 for blending.
In stage1, add the following code to set the matrix:

pd3dDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT00, F2DW(1));
pd3dDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT01, F2DW(0));
pd3dDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT10, F2DW(0));
pd3dDevice->SetTextureStageState(1, D3DTSS_BUMPENVMAT11, F2DW(1));

#7 Solid_Spy   Members   -  Reputation: 420

Like
0Likes
Like

Posted 19 December 2012 - 12:48 AM

Converting a bump map to a normal map at run-time is easier and provides a faster run-time than trying to get bump-mapping to work with the old pipeline. It is just a Sobel filter.
Speed purposes? Then use a normal map.

I can’t help you with getting the fixed-function pipeline to work with bump-mapping. If I were to try to help you, all I would end up doing is checking online tutorials and samples, and there is no reason you can’t do that yourself.



L. Spiro


Ok, your right, I did some research and found out that you can easily create a normal map in photoshop. At first I thought that you had to make an entire 3d model and sculpt it to make a normal map, but I was wrong. As for the online tutorials, i couldn't find any, but i'm still looking.

Edited by Solid_Spy, 19 December 2012 - 12:51 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS