Setting textures for a loaded .obj file in three.js without using a .mtl file

Is it possible to apply material like THREE.MeshPhongMaterial() to a specific object within a loaded .obj file that contains multiple objects?

        var customMaterial = new THREE.MeshBasicMaterial( { color: 0x444444 } );
        var loader = new THREE.OBMLoader();
        loader.load("https://aroncad.com/wp-content/themes/AronCad/3d/satllite/100.obm", function( obj ){
            obj.traverse( function( child ) {

                // Code to individually assign materials to specific objects goes here

            } );
            scene.add( obj );
        });

Answer №1

To resolve the issue at hand, consider implementing the Object3D.traverse() method just as you have already done in your code. This technique is prominently utilized in the official OBJ example to successfully apply textures to all materials. Here's how you can adapt the code to suit your specific requirements:

object.traverse( function ( child ) {

    if ( child.isMesh ) child.material = material_10;

} );

Using three.js version R109

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Validating form field values in JavaScript prior to submission

My website features a search box that allows users to search through a database of books. When utilizing the search feature, users are presented with the following options: Search Query (a text input field) Where to search (a select field with the option ...

The first argument in the Node.appendChild function does not adhere to the Node interface when trying to append to a new element

Hey there, I'm new to web development and could use some help. I'm encountering an error where I am trying to add an href attribute to an image tag. Here is my code: function linkus() { var a = document.getElementsByTagName("img"); ...

Can we prevent a component from being mounted every time it is rendered by its parent component?

Is it possible to render the Child component within the Father component without mounting it and resetting its states when the Father component is rendered? I attempted to use the useMemo hook to render the Child component, but it still mounts the compone ...

The issue of background color not being applied to the entire page in Vue.js is currently being investigated

I am currently working on styling my Vue.js application, and I am trying to apply the background-color property. To have this color displayed on all pages, I have decided to add the CSS directly to the <style> tag in the index.html file: <head> ...

iOS Safari does not support the forEach method

I am facing an issue with my function that loads specific modules on specific pages based on body classes. Strangely, the forEach function is not working on iOS devices, particularly in Safari. I have been trying to troubleshoot this problem for some time ...

Ways to retrieve a glb model without the loader in Three.js

Currently, I am utilizing a GLTFLoader in threejs along with a glb model initialization. My main objective is to extract the model from the loader for use outside of it. Despite researching numerous topics on this matter, none have provided a solution to m ...

Changing the size of a Chrome notification

Is it possible to programmatically adjust the size of a notification to a specified size? Here is my JavaScript code: var notification = window.webkitNotifications.createHTMLNotification('http://mypage'); notification.show(); ...

Displaying a specific column value from a custom table in a Wordpress database when a button is clicked

After integrating a custom table into my WordPress database, I developed a shortcode to connect it to specific pages on my website. The table consists of two columns: ID and coupon_code. This special table holds coupon codes that I want to display the val ...

Comparing throwing exceptions in Node.js and Gevent

During a recent tech gathering, I heard an interesting claim about the behavior of callbacks and exceptions in Node.js and Gevent. The person mentioned that if a callback throws an exception in Node.js, it can crash the entire process, whereas in Gevent, a ...

SSE and the power of NodeJS through Express

Having trouble receiving SSE events in the browser. This is the server-side code (using Express): app.all('/callme', function(req, res){ res.writeHead(200, { 'Connection': 'keep-alive', 'Content-Type&apo ...

Utilizing v-for to display dynamic data in a modal imported through slots

Issue: I'm facing an issue with passing data from a clicked card to a modal component. The modal should display the title, image, preview URL, and download URL of the card that was clicked. However, I'm encountering an error that says is not def ...

Retrieve the names contained within TD elements using the console

I always enjoy experimenting with new things. Take a look at the https://lodash.com/docs/4.17.15 lodash documentation site where you'll find a menu on the left side featuring all available functions. Is there a way to extract the names of these functi ...

Substitute the comma with a space

Here is my input code snippet: (((text(text here))) AND (test3) Near (test4) NOT (test5) NOT (Test6)),((tttt,tttt)),((and,lol)),((hbhbhbhbhbh)) This is the output I get: (((text(text here))) AND (test3) Near (test4) NOT (test5) NOT (Test6) (tttt,tttt) (an ...

Retrieving the text content of an element once the class has been applied

I am attempting to retrieve the text value of an element that receives a class after being clicked on. However, I am not successful in obtaining it. I have also attempted to use html(). let selectedLevel; function chooseOption(menu) { $(menu).on(&a ...

What is the best way to access the second item using getByRole in React Testing Library when there is no specific name?

I am familiar with using the name option to select the first item here, but how can I go about selecting the second item if it does not have a name identified? -------------------------------------------------- button: Enter "Go": ...

Phonegap application functioning smoothly on computer, encountering issues on mobile device

Hey there! I recently developed a phonegap app that retrieves JSON data from a YQL link and presents it to the user. It works perfectly on Google Chrome desktop, but my client mentioned that it doesn't work on his Android 2.3 device. Could you help me ...

What could be causing my Angular Ngrx app's state not to render properly on the application?

Is there a way to automatically render the state when the app loads without having to click a button? I am currently facing an issue where the state is empty until I manually trigger the click function by pressing a button. I have tried using this.store.se ...

Update the radio options and link them to a particular identifier in both the database and the HTML tables

Currently, I have an AJAX request that generates a table with the following structure: | ID | Name | Radio | ======================================== | 123456 | One | Y,N | ======================================== | 78 ...

Using wildcard in Angular app for MQTT observation

My curiosity lies in MQTT wildcards and how they function, specifically while utilizing the mosqitto broker. Let's say I have around 1-2k topics. In my frontend, I am observing them with a single-level wildcard using ngx-mqtt. Will there be a separat ...

Traversing an object with a loop

I'm currently working on a project that involves utilizing the swapi co API. Although I've successfully fetched results from the website, I'm struggling with displaying only specific API objects, particularly array spaceships. var linkApi=" ...