An Optimization Framework to Enforce Multi-View Consistency for
Texturing 3D Meshes

1Alibaba Group 2The University of Texas at Austin
MY ALT TEXT

Given a 3D mesh and a text prompt, we propose an optimization framework to synthesize the multi-view consistent texture. Top: meshes from a 3D generation model. Bottom: artist-created meshes.

Abstract

A fundamental problem in the texturing of 3D meshes using pre-trained text-to-image models is to ensure multi-view consistency. State-of-the-art approaches typically use diffusion models to aggregate multi-view inputs, where common issues are the blurriness caused by the averaging operation in the aggregation step or inconsistencies in local features. This paper introduces an optimization framework that proceeds in four stages to achieve multi-view consistency.Specifically, the first stage generates an over-complete set of 2D textures from a predefined set of viewpoints using an MV-consistent diffusion process. The second stage selects a subset of views that are mutually consistent while covering the underlying 3D model. We show how to achieve this goal by solving semi-definite programs. The third stage performs non-rigid alignment to align the selected views across overlapping regions. The fourth stage solves an MRF problem to associate each mesh face with a selected view. In particular, the third and fourth stages are iterated, with the cuts obtained in the fourth stage encouraging non-rigid alignment in the third stage to focus on regions close to the cuts. Experimental results show that our approach significantly outperforms baseline approaches both qualitatively and quantitatively.

Video

Method

MY ALT TEXT

The overall pipeline of our approach, which consists of four stages. The first stage (view generation) uses a pre-trained text-to-image model to generate an over- complete set of RGB-D images of the input model. The second stage (view selection) selects a subset of consistent RGB-D images from the view generation output. The third stage (view alignment) performs non-rigid warping to further improve the multi-view consistency among the selected images. The last stage (texture stitching) produces cuts between pairs of overlapping images by solving a second-order MRF problem.

Gallery of Textured Meshes

[Click on the cover to play the animation]

Watch Model With Stand

Video Cover

Birthday cake

Video Cover

A pair of blue jeans

Video Cover

Rusty kerosene lamp

Video Cover

a roast chicken

Video Cover

A platinum ring studded with precious stones

Video Cover

Furniture Bed

Video Cover

A wooden bird house

Video Cover

a Portugal Fire Hydrant

Video Cover

A Christmas present

Video Cover

A raspberry

Video Cover

An old Dutch windmill building

Video Cover

a vintage car

Video Cover

A rhino

Video Cover

A handle saw

Video Cover

A pink donut

Video Cover

An ancient shield

Video Cover

Stone horse head sculpture

Video Cover

A pale yellow seahorse

Video Cover

A pair of sunglasses

Video Cover

A dancing brown dog in a white shirt, wearing dark sunglasses

Video Cover

Precision Sniper Rifle, CSGO AWP DRAGON LORE

Video Cover

A kid's bike

Video Cover

A vase with red roses

Video Cover

Sanxingdui bronze mask.

Video Cover

A hamburger.

Video Cover

lazboy rocker recliner

Video Cover

black backpack with red accents

Video Cover

A lovely cabbage

Video Cover

Nano Armor

Video Cover

cartoon dragon, red and green

Video Cover

fairy house with a garden

Video Cover

crocodile skin handbag

Video Cover

A color bust photo of Donald Trump

Video Cover

wooden klein bottle

Video Cover

A man wears a ser of medieval knight armor

Video Cover

realistic rabbit

Video Cover

a UGG boot

Video Cover

a turtle

BibTeX

@misc{zhao2024optimization,
        title={An Optimization Framework to Enforce Multi-View Consistency for Texturing 3D Meshes}, 
        author={Zhengyi Zhao and Chen Song and Xiaodong Gu and Yuan Dong and Qi Zuo and Weihao Yuan and Zilong Dong and Liefeng Bo and Qixing Huang},
        year={2024},
        eprint={2403.15559},
        archivePrefix={arXiv},
        primaryClass={cs.CV}
      }