The property 'texture' is not valid for this material in Three.js - THREE.MeshLambertMaterial

I am currently working on a project that involves a rotating cube. My goal is to enhance the sides of the cube by adding dice textures using MultiMaterial with MeshLambertMaterials.

So far, I have successfully created my rotating cube. View Spinning Cube Image

To load the textures onto the cube, I used the following code snippet. The textures are named 1.jpg, 2.jpg...

const loadTextures = () => {
    const textureLoader = new THREE.TextureLoader();
    let materials = [];

    for (let i = 0; i <= 5; i++) {
        const texture = textureLoader.load('./assets/textures/' + (i + 1) + '.jpg');
        materials[i] = new THREE.MeshLambertMaterial({ texture });
    }

    return materials;
}

After loading the textures, I utilized an array of MeshLambertMaterials to create a MultiMaterial and applied it to the Cube Mesh as shown in the following code snippet.

const createCubeMesh = (width, height, depth) => {
    const materials = loadTextures();

    const   geometry = new THREE.BoxGeometry(width, height, depth),
            material = new THREE.MultiMaterial(materials),
            mesh = new THREE.Mesh(geometry, material);

    return mesh;
}

When running the code, I encountered some warnings but no errors. Here is a visual representation: Error & Pic Load-in Proof Image. Unfortunately, the textures did not load as expected. Here is an image showing the issue: Texture Doesn't Load Image.

Answer №1

After discovering the solution on my own, I felt compelled to share it in case others were facing a similar problem. The crucial mistake I made was neglecting to include the 'map' property when assigning the texture to each MeshLambertMaterial.

materials[i] = new THREE.MeshLambertMaterial({ map:texture });

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

Tips for determining whether the current request is an AJAX request in MVC3 view using JavaScript

I have a div with a maximum height and overflow set to auto. When the size of the div overflows, a scroll bar is automatically added. However, I have also set $("#itemsdiv").scrollTop(10000); so that the scroll bar is always at the bottom. Now, I want t ...

Shifting hues with every upward and downward movement

I am experiencing a small issue with this JS code... -I have multiple divs that are changing automatically in rows as they move randomly... I want to change the color of the div moving up to green. And for the div moving down, I want to change the colo ...

Grouping items by a key in Vue and creating a chart to visualize similarities among those keys

I am working with an object that has the following structure; { SensorA: [ { id: 122, valueA: 345, "x-axis": 123344 }, { id: 123, valueA: 125, "x-axis": 123344 }, { id: 123, valueA: 185, "x-axis": 123344 }, { ...

Unlocking the secrets of extracting dimensions from imported SVG components in nextJS

I am facing an issue with importing an SVG file as a component and trying to obtain its dimensions, but it keeps returning null. Can someone provide me with advice on how to resolve this? PS. When I try using getBBox(), it throws an error. Here is the co ...

Why did my compilation process fail to include the style files despite compiling all other files successfully?

As English is not my first language, I kindly ask for your understanding with any typing mistakes. I have created a workspace with the image depicted here; Afterwards, I executed "tsc -p ." to compile my files; You can view the generated files here Unf ...

What is the method for adjusting the camera without being restricted by its axes?

I've modified some code from the example at to create a simplified version without certain elements like flying cubes and jumping: var camera, scene, renderer, controls; var objects = []; var raycaster; var moveForward = false; var moveBackward = fa ...

Is there a more efficient method to modify the contents of an array within an immutable object using Immutable js?

Within my React Redux project, I have encountered a scenario where I need to update an array in the state. Currently, my approach involves using the following code snippet: this.setState(fromJS(this.state).set(e.target.id, fromJS(this.state).get(e.target. ...

What is the process for setting up Vue.js and using it in conjunction with Sails JS?

After successfully setting up the backend of my website using Sails JS, I decided to integrate Vue.js into my project. Following the installation of Vue and VueResource through npm install --save, I created an app.js file in my assets/js folder. However, ...

Link a YAML file with interfaces in JavaScript

I'm currently learning JavaScript and need to convert a YAML file to an Interface in JavaScript. Here is an example of the YAML file: - provider_name: SEA-AD consortiumn_name: SEA-AD defaults: thumbnail Donors: - id: "https://portal.brain ...

Dynamic resizing navigation with JQUERY

I have successfully created a navigation menu that dynamically resizes each list item to fit the entire width of the menu using JavaScript. $(function() { changeWidth(500); function changeWidth(menuWidth){ var menuItems = $('#menu l ...

What is the best way to retrieve the value from a callback function in the outer scope?

I'm facing an issue with accessing values from a callback function in the parent scope. Essentially, I need to retrieve and use data fetched by the s3.getObject() function in the outer scope (last line). Below is my JavaScript code used for fetching ...

Trigger an alert message upon loading the HTML page with search text

I need to search for specific text on a webpage and receive an alert if the text is found. <script type='text/javascript'> window.onload = function() { if ((document.documentElement.textContent || document.documentElement.innerText ...

Tips for showing JSON data within multiple <div> elements on an HTML page with AngularJS and ng-repeat

I am looking to display JSON values on my HTML page, each in a separate div based on the image URL value from the .json file. However, I am encountering difficulties in displaying these values in the divs. Can someone please guide me on how to iterate and ...

Vue 2 - Error: The function is not defined at HTMLInputElement.invoker (vue.esm.js?65d7:1810)TypeError: cloned[i].apply

I encountered the following error: Uncaught TypeError: cloned[i].apply is not a function at HTMLInputElement.invoker (vue.esm.js?65d7:1810) I have set up my project using vue-cli (simple webpack), and below is the code for my component: <template ...

Storing the initial toggle state in localStorage with React hooks is a helpful way to save user

I'm currently working on persisting the state of a toggle in local storage, as an example of maintaining a modal or a similar element even after a page refresh. Most of my implementation is functional - upon the initial page load, the boolean value i ...

JavaScript's Array.map function failing to return a value

Here is a snippet of code from an api endpoint in nextJS that retrieves the corresponding authors for a given array of posts. Each post in the array contains an "authorId" key. The initial approach did not yield the expected results: const users = posts.ma ...

A quick guide on automatically checking checkboxes when the user's input in the "wall_amount" field goes over 3

I'm looking to have my program automatically check all checkboxes (specifically "Side 1, Side 2, Side 3 and Side 4") if the input for wall_amount is greater than 3. Is there a way to achieve this? I attempted lines 10-12 in JavaScript without success. ...

Extracting data from a JSON file and displaying it using Angular

I'm facing a challenge with parsing two JSON format data and displaying them in Angular. I'm unsure of how to proceed and need guidance. The second data includes a plan_id that refers to the "plan" data. How can I create a small lookup object to ...

Replace the indexOf() method to be called on a null value

I have discovered a way to override functions in JavaScript, such as indexOf(), like this: var indexOf = String.prototype.indexOf; String.prototype.indexOf = function(){ //MY CUSTOM CODE HERE return indexOf.call(this, arguments); }; By doing this ...

Fetching the URL for the Facebook profile picture

Utilizing satellizer for authentication in a MEAN application. Once the authentication process is complete, I aim to retrieve the user's profile picture. Below is the code snippet that I am using: Angular Controller (function(){ 'use strict ...