Generative Neural Materials

1UC San Diego, 2Adobe Research
*Denotes equal contribution

This scene consists solely of neural materials rendered with our universal pipeline, both fit manually and generated from our single shot image-to-material pipeline.

Abstract

Advancements in neural rendering techniques have sparked renewed interest in neural materials, which are capable of representing bidirectional texture functions (BTFs) cheaply and with high quality. However, content creation in the neural material format is not straightforward. To address this limitation, we present the first image-conditioned diffusion model for neural materials, and show an extension to text conditioning. To achieve this, we make two main contributions:

First, we introduce a universal MLP variant of the NeuMIP architecture, defining a universal basis for neural materials as 16-channel feature textures.

Second, we train a conditional diffusion model for generating neural materials in this basis from flash images, natural images and text prompts. To achieve this, we also construct a new dataset of 150k neural materials.

We demonstrate real-time decoding performance for our universal materials at 1024 x 1024.

Videos: Universal Neural BTF Basis

Leather Chesterfield

Fabric Camouflage

Material 3

Eroded Mud Wall

Ancient Chinese Armor

Concrete Wall

Melted Metal

Venice Mosaic Tile

Ceramic Tiles

Train Tracks

Cable Knit Wool

Dry Rocky Mud

Generated Materials: Flash Images

Condition

IMG_0370

Condition

IMG_5994

Condition

IMG_7630

Condition

IMG_0360

Condition

IMG_0821

Condition

IMG_1056

Condition

IMG_6869

Condition

IMG_1109

Condition

IMG_7088

Condition

IMG_5151

Condition

IMG_9066

Condition

IMG_1019

Condition

IMG_0299

Condition

IMG_0231

Condition

IMG_0420

Condition

IMG_0253

Condition

IMG_0815

Condition

Shiny Metal

Condition

Home Wood

Condition

Home Leather

Generated Materials: Casual Captures

Condition

Cat

Condition

Birds

Condition

Floor

Condition

Lamp

Condition

Studded Stone

Condition

Pillar

Condition

Plaid

Condition

Dress

Generated Materials: Text-to-Image

Bumpy uneven texture of an orange peel

Soft cloud-like texture of a floating island

Texture of dragon etched glass

Texture of dragon-embossed printed circuit board

Flaky crumbly texture of a fresh croissant

Velvety luminescent petals of a night-blooming flower

Polished concrete

Old worn out hardwood floor

Dirty concrete

Red rock cliff

Brown matte leather

Linen fabric

Green moss

Translucent jellyfish-like surface of a mystical portal

Wavy holographic surface of an interdimensional mirror

Pipeline

Pipeline Overview

Overview of our pipeline. (a) Shows the data generation and training of the universal basis network. For each of 512 selected materials, 400 slices of data are rendered, where each pixel contains a different camera and light direction. The 512 materials are jointly used to train (Offset and RGB) neural textures, as well as corresponding MLPs. (b) Shows the training process for the full dataset of approximately 150,000 materials. For each material, training data is rendered similarly as in (a), however, the universal MLPs are used with frozen weights to fit each material's neural texture. (c) The resulting 150,000 neural materials are used as training data for training the diffusion model

Network Architecture

Network Architecture

Network Architecture (a) Shows our diffusion model's architecture, which can conditionally (image, or optionally text) generate a neural texture pair (offset and RGB). (b) Shows how the neural textures are used for inference, i.e., render under a given (novel) camera and light(s)

BibTeX

@article{raghavanmullia2025genneumat,
  author    = {Raghavan, Nithin and Mullia, Krishna and Trevithick, Alexander and Luan, Fujun and Ha\v{s}an, Milo\v{s} and Ramamoorthi, Ravi},
  title     = {Generative Neural Materials},
  year      = {2025},
  isbn      = {9798400715402},
  series    = {SIGGRAPH Conference Papers '25},
  volume    = {43},
  articleno = {162},
  pages     = {11},
  doi       = {10.1145/3721238.3730746}
}

Template taken from Nerfies (source code here)