计算表面法线贴图时发生了一些奇怪的事情
Something weird is happening when computing surface normal map
我正在使用以下代码从深度图像生成表面法线贴图:
for x in range(depth.shape[0]):
for y in range(depth.shape[1]):
try:
dzdx=(depth[x+1,y,0]-depth[x-1,y,0])/2
dzdy=(depth[x,y+1,0]-depth[x,y+1,0])/2
except:
dzdx=0
dzdy=0
sub=np.asarray([-dzdx,-dzdy,1])
normals[x,y,:]=sub/np.linalg.norm(sub)
对发生的事情有什么想法吗?
您在行中有错误:
dzdy=(depth[x,y+1,0]-depth[x,y+1,0])/2
应该是
dzdy=(depth[x,y+1,0]-depth[x,y-1,0])/2
我正在使用以下代码从深度图像生成表面法线贴图:
for x in range(depth.shape[0]):
for y in range(depth.shape[1]):
try:
dzdx=(depth[x+1,y,0]-depth[x-1,y,0])/2
dzdy=(depth[x,y+1,0]-depth[x,y+1,0])/2
except:
dzdx=0
dzdy=0
sub=np.asarray([-dzdx,-dzdy,1])
normals[x,y,:]=sub/np.linalg.norm(sub)
对发生的事情有什么想法吗?
您在行中有错误:
dzdy=(depth[x,y+1,0]-depth[x,y+1,0])/2
应该是
dzdy=(depth[x,y+1,0]-depth[x,y-1,0])/2