Problems rendering texture on a mesh

Started by
8 comments, last by eppo 11 years, 3 months ago

Hi,

my problem is that for some reason my texture gets twisted from two sides of a cube. I load a cube from .OBJ file and the data seems to be valid. I have tested .OBJ file with another application, wich renders the cube correctly. With both applications I get same result after loading the OBJ-file, but my application doesn't render it correctly. Mysterious part is that only two sides of the cube is rendered incorrectly but four other sides looks ok. I have attached pictures from cube as well.

Work order of loading and setuping the mesh:

1. Get position data and texture position data from OBJ-file

2. Get indices of vertices

3. Setup vertex and index buffers

4. Load and setup texture

Any ideas what might cause this error?

See my game dev blog: http://gamedev4hobby.blogspot.fi/
Advertisement
Could you post the .obj file as well?

at my case mostly it occur about vertex declarion about buffer and shader ...

of vertex buffer's structure..

and you must use PIX for this kind of problem..

It's in DX sdk

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)

Check the texture coordinates for the faces that are rendering wrong. The suggestion of using pix for this is good as well as it can show you at which coordinates a texture is being sampled.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

Here is the mesh what I try to load:

# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware

# File Created: 16.12.2012 18:16:25

mtllib MyNewRock.mtl

#

# object Box001

#

v -20.6063 0.0000 -0.0150

v -20.6063 0.0000 -9.1689

v -7.4212 0.0000 -9.1689

v -7.4212 0.0000 -0.0150

v -20.6063 10.1923 -0.0150

v -7.4212 10.1923 -0.0150

v -7.4212 10.1923 -9.1689

v -20.6063 10.1923 -9.1689

# 8 vertices

vn 0.0000 -1.0000 -0.0000

vn 0.0000 1.0000 -0.0000

vn 0.0000 0.0000 1.0000

vn 1.0000 0.0000 -0.0000

vn 0.0000 0.0000 -1.0000

vn -1.0000 0.0000 -0.0000

# 6 vertex normals

vt 1.0000 0.0000 0.0000

vt 1.0000 1.0000 0.0000

vt 0.0000 1.0000 0.0000

vt 0.0000 0.0000 0.0000

# 4 texture coords

g Box001

usemtl 01___Default

s 2

f 1/1/1 2/2/1 3/3/1

f 3/3/1 4/4/1 1/1/1

s 4

f 5/4/2 6/1/2 7/2/2

f 7/2/2 8/3/2 5/4/2

s 8

f 1/4/3 4/1/3 6/2/3

f 6/2/3 5/3/3 1/4/3

s 16

f 4/4/4 3/1/4 7/2/4

f 7/2/4 6/3/4 4/4/4

s 32

f 3/4/5 2/1/5 8/2/5

f 8/2/5 7/3/5 3/4/5

s 64

f 2/4/6 1/1/6 5/2/6

f 5/2/6 8/3/6 2/4/6

# 12 faces

And thanks for suggesting PIX debugging tool. I have to look how to use it.

See my game dev blog: http://gamedev4hobby.blogspot.fi/

I added a debug photo and it seems that texture coordinates are actually wrong. Some of those coordinates don't match.

See my game dev blog: http://gamedev4hobby.blogspot.fi/
When I delete discontinuous uv map values, the box looks like the above pictures (with the two opposite sides along the z-axis distorted). You'll have to duplicate/unweld vertices with identical positions, but individual (per face) uv coordinates. That is, faces that refer to the same vertex, but have a value on a different uv chart, need to be assigned a copy of the vertex with their own specific uvs.
Thanks eppo. I noticed the problem. I assigned correct position data but wrong tu tv coordinates so I have to fix my algorithm. I think this will solve my problem.
See my game dev blog: http://gamedev4hobby.blogspot.fi/

Thanks eppo. I noticed the problem. Position data was correct but I loaded wrong tu and tv coordinate so I have to fix my algorithm. I think this will fix my problem.

See my game dev blog: http://gamedev4hobby.blogspot.fi/
Note that the .obj data's vertex normals are also indexed, so you'll have to duplicate those too.

This topic is closed to new replies.

Advertisement