Thanks to the explanations of Huashan and secondage, I finally understood the real use of heightmap in doom3.
In the past, heightmap was not used for parallaxmapping (in fact, heightmap does not store the actual height information), but instead for generating normalmap.
There are two types of bumpmap in doom3: polybump, which is obtained by _ local texture and stores rough convex and concave information of the model; detailbump, it is obtained by heightmap and stores the convex and concave information details of the model. These two methods work together to achieve real results.
JC is not clear about how to operate the two normalmaps, but Huashan conjecture is to make a scale for detailbumpnormal and then add it with polybumpnormal. As for the scale parameter, it is estimated that it is obtained from *. MTR.
I tried it and the effect was fine. I had a lot more details.
BTW: Try to use the alpha channel of normalmap to pass in the height information and perform parallaxmapping. The effect is very poor.