davidvgilmore commited on
Commit
88e0ebd
·
verified ·
1 Parent(s): 107e9af

Upload hy3dgen/texgen/custom_rasterizer/custom_rasterizer/render.py with huggingface_hub

Browse files
hy3dgen/texgen/custom_rasterizer/custom_rasterizer/render.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Open Source Model Licensed under the Apache License Version 2.0
2
+ # and Other Licenses of the Third-Party Components therein:
3
+ # The below Model in this distribution may have been modified by THL A29 Limited
4
+ # ("Tencent Modifications"). All Tencent Modifications are Copyright (C) 2024 THL A29 Limited.
5
+
6
+ # Copyright (C) 2024 THL A29 Limited, a Tencent company. All rights reserved.
7
+ # The below software and/or models in this distribution may have been
8
+ # modified by THL A29 Limited ("Tencent Modifications").
9
+ # All Tencent Modifications are Copyright (C) THL A29 Limited.
10
+
11
+ # Hunyuan 3D is licensed under the TENCENT HUNYUAN NON-COMMERCIAL LICENSE AGREEMENT
12
+ # except for the third-party components listed below.
13
+ # Hunyuan 3D does not impose any additional limitations beyond what is outlined
14
+ # in the repsective licenses of these third-party components.
15
+ # Users must comply with all terms and conditions of original licenses of these third-party
16
+ # components and must ensure that the usage of the third party components adheres to
17
+ # all relevant laws and regulations.
18
+
19
+ # For avoidance of doubts, Hunyuan 3D means the large language models and
20
+ # their software and algorithms, including trained model weights, parameters (including
21
+ # optimizer states), machine-learning model code, inference-enabling code, training-enabling code,
22
+ # fine-tuning enabling code and other elements of the foregoing made publicly available
23
+ # by Tencent in accordance with TENCENT HUNYUAN COMMUNITY LICENSE AGREEMENT.
24
+
25
+ import custom_rasterizer_kernel
26
+ import torch
27
+
28
+
29
+ def rasterize(pos, tri, resolution, clamp_depth=torch.zeros(0), use_depth_prior=0):
30
+ assert (pos.device == tri.device)
31
+ findices, barycentric = custom_rasterizer_kernel.rasterize_image(pos[0], tri, clamp_depth, resolution[1],
32
+ resolution[0], 1e-6, use_depth_prior)
33
+ return findices, barycentric
34
+
35
+
36
+ def interpolate(col, findices, barycentric, tri):
37
+ f = findices - 1 + (findices == 0)
38
+ vcol = col[0, tri.long()[f.long()]]
39
+ result = barycentric.view(*barycentric.shape, 1) * vcol
40
+ result = torch.sum(result, axis=-2)
41
+ return result.view(1, *result.shape)