Authors: Yiangos Georgiou, Marios Loizou, Melinos Averkiou, Evangelos Kalogerakis
Affiliations: University of Cyprus / CYENS CoE / Technical University of Crete
Published in: CGF (SGP2025)
Im2SurfTex is a method that generates textures for input 3D shapes by learning to aggregate multi-view image outputs produced by 2D image diffusion models onto the shapes' texture space. Unlike existing texture generation techniques that use ad hoc backprojection and averaging schemes to blend multiview images into textures, often resulting in texture seams and artifacts, our approach employs a trained neural module to boost texture coherency. The key ingredient of our module is to leverage neural attention and appropriate positional encodings of image pixels based on their corresponding 3D point positions, normals, and surface-aware coordinates as encoded in geodesic distances within surface patches. These encodings capture texture correlations between neighboring surface points, ensuring better texture continuity. Experimental results show that our module improves texture quality, achieving superior performance in high-resolution texture generation.
Follow these steps to set up and run the project locally.
git clone https://github.com/ygeorg01/Im2SurfTex.git
cd Im2SurfTexconda env create -f environment.yaml
source activate 3d_aware_texturingAfter setting up the environment, you can generate textures using the provided scripts.
Click this link to download the assets and unzip the file into im2surftex folder
Download the geodesic information by pressing this here and use this directory as your output directory.
If you want to change output folder move also the geodesic information to the new folder
Also, if there is a need to change camera locations new geodesic information must be computer which takes time
Download pretrained weight here
- Define the Meshes that will be used for texturing in src/config/mesh.json. Here you can define the meshes and their corresponding texts prompts.
- Define config file arguments src/config/template_eval.yaml Important arguments: tex_size : [256|1024] , inpaint_strategy : [True|False] , if inpaint_strategy==True change inference_iterations to 3 otherwise the default is 2
python src/scripts/texture_mesh.py --out_dir ./textured_shapes --checkpoint_path <checkpoint path>- [Paint3D], This project used multiple parts from paint3D repository. Please also consider this work.
If you found this project or code useful, please cite:
@article{georgiou2025im2surftex,
title={Im2SurfTex: Surface Texture Generation via Neural Backprojection of Multi-View Images},
author={Georgiou, Yiangos and Loizou, Marios and Averkiou, Melinos and Kalogerakis, Evangelos},
journal={arXiv preprint arXiv:2502.14006},
year={2025}
}