Computer-implemented method and system for assisting rendering of an image
The method improves rendering speed and accuracy by pre-rendering images at multiple intrinsic reflectance levels, using spectral fitting weights to accelerate the process and reduce computational demands, allowing for efficient recoloring of images and videos.
Patent Information
- Application Number
- PCT/EP2025/074456
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-09-02
- Filing Date
- 2025-08-28
- Publication Date
- 2026-03-05
AI Technical Summary
Modern RGB rendering algorithms are computationally intensive and time-consuming, particularly when recoloring images, and often require significant resources, failing to balance speed and accuracy in applications like architectural design and consumer selection of colors.
A computer-implemented method that pre-renders images at multiple intrinsic reflectance levels, using spectral fitting weights to accelerate and enhance the rendering process by reducing the need for recalculation of RGB values, leveraging a first computer device for pre-rendering and a second device for final rendering.
This approach significantly enhances rendering speed and accuracy, enabling virtually real-time recoloring of images and videos by minimizing computational overhead and resource usage.
Smart Images

Figure EP2025074456_05032026_PF_FP_ABST
Abstract
Description
[0001]COMPUTER-IMPLEMENTED METHOD AND SYSTEM FOR ASSISTING RENDERING OF AN IMAGE FIELD OF THE INVENTION This disclosure relates to a computer-implemented method and computer system for assisting rendering of an image, such as rendering on a display screen. BACKGROUND Most modern display screens are composed of millions of pixels, each containing three subpixelsfor emitting red (R), green (G) and blue (B) light, for example. The RGB colour model is an additive colour model wherein colours are produced by adding different intensities of red, green and blue lighttogether. When all three colours are emitted at maximum intensity, the resulting colour is perceived aswhite and when all three colours are at minimum intensity the resulting colour is perceived as black. Therendering algorithm to display an image on a display unit typically operates in conjunction with a graphicprocessing unit, GPU, to render images and video content by controlling the R, G and B subpixelsseparately. The rendering algorithm controls each subpixel such that the pixel emits the colour neededfor displaying an image on the screen. The rendering algorithm typically operates within the assumptionof a defined colour space, such as sRGB, that determines the range of colours that can be displayed. Modern RGB rendering algorithms are advanced and can produce a vast array of coloursincluding representations of shadow effects and, sometimes, spectral interactions between surfaces ofobjects, sometimes referred to as global illumination, interreflection or colour bleeding. These RGBrendering algorithms are computationally intensive and displaying an advanced image may take considerable time and resources. Some rendering algorithms, such as ‘spectral rendering algorithms’ attempt to increase the precision of a rendered (RGB) image by sampling along the continuous spectral dimension instead of just in RGB channels. Some rendering algorithms, such as ‘real-time’ rendering algorithms, attempt to limit the time needed for rendering a single image but do so at the cost of precision and accuracy and considerable energy consumption. Practical applications, however, often require changing colours in a virtual scene, sometimes referred to as recolouring. These applications include an architect showing the effect of different colours in a building model, a product designer evaluatingdifferent colours for a new product or for consumers behind their home computers selecting a paint fortheir homes. SUMMARY The inventor has considered that for these applications, amongst others, there exists a need inthe art for improved speed and / or optimized resource use when (re-)-colouring an image or part thereof.To that end, the present disclosure pertains to a computer-implemented method for assistingrendering of an image comprising at least one object on a display screen using a computer system. Themethod may be performed for each pixel individually. One method step involves obtaining at least threemonochromatic pre-rendered pixels of the object for at least three intrinsic reflectance levels (R1, R2, R3) of each pixel from a pre-rendering algorithm. Each of the at least three intrinsic reflectance levels (R1, R2, R3) corresponds to a radiance level (L1, L2, L3) generated in the pre-rendering algorithm to constitute at least three respective control points (R1, L1; R2, L2; R3, L3) in a radiance vs. intrinsicreflectance plane, L-Rint. Some rendering algorithms indeed predict radiance levels L for a pixel.It is noted that, if a pre-rendering algorithm does not produce radiance L but some other linear unit of light K, the computer-implemented method and computer system as disclosed herein would alsowork by taking into account a conversion from K^ to X, Y, Z, for example, and would therefore fall underthe scope of the appended claims. The intrinsic reflectance levels R may be selected as desired. An example is R1=0%, R3=100%and one intrinsic reflectance level in between, for example an intrinsic reflectance level between 50%and 99%, such as R2=70% or R2=80%. It should be appreciated that, if for example a higher accuracyis desired, more than three control points may be applied. If four or five control points are used, valuesfor the intrinsic reflectance levels may be R1=0%, R2=60%, R3=85% and R4=100% for four controlpoints or R1=0%, R2=30%, R3=60%, R4=85% and R5=100% for five control points, for example. Itshould further be appreciated that extrapolation may be applied, so that R1 could be set to a valuedifferent from 0% (say 5% or 10%, for example) and R3 could be set to a value other than 100% (say 90% or 95% for example). Since intrinsic reflectance levels below 5% or above 95% occur rarely inreality, this could be a valid practice. Such an approach would increase the accuracy of the interpolationwithin R1-R3. It should further be appreciated that the image may represent a virtual scene. The object in the image may be a surface (e.g. of a wall, ceiling or floor) or a volume. The method may further comprise the step of calculating, for a plurality of wavelengths ^ for aselected spectral colour for the object, a set of spectral fitting weights S^ derived from a reflectance levelR’ associated with the selected spectral colour and monochromatic fitting weights Q or W. Thesemonochromatic fitting weights Q or W result from inversely fitting a curve through the at least threecontrol points (R1, L1; R2, L2; R3, L3) in an intrinsic reflectance vs. radiance plane Rint-L. The method further comprises the step of applying the spectral fitting weights S^ to assist in rendering the image. It should be appreciated that the method may apply a database or other repository for severalspectral colours of reflectance R’ for a plurality of wavelengths ^ from which the colour can be selected.These reflectance levels R’ may have been measured or predicted or otherwise generated. For example,a paint manufacturer may offer thousands of paint colours for which the reflectance R’ is known for aplurality of wavelengths. These wavelengths may be wavelengths within the visible spectrum. One may,for example, divide the 400-700 nm spectral range into 10 nm intervals and obtain 31 reflectance levelsR’ for this interval. Another possibility is to have 15 nm or 20 nm wavelength intervals with correspondingreflectance levels R’. A further aspect of the disclosure involves a computer system configured to execute the computer-implemented method, or steps thereof, as disclosed herein. Optionally, the computer system may comprise at least a first computer device and a second computer device wherein steps of the computer-implemented method are partly executed on the first computer device and partly executed on the second computer device. The first computer device and second computer device may have distinct computing resources. For example, the first computer device may have higher processing power than the second computer device. Accordingly, pre-rendering the monochromatic pixels may be executed in the first computer device, or some other computer device, whereas the rendering and re-rendering of, for example, an image may be executed on the secondcomputer device, or some other computer device as will be explained in further detail below.It should be noted that an object may comprise multiple parts of the same colour, such as a table and chair of the same colour. It should further be appreciated that the disclosed computer-implemented method and computer system also apply to mono-colour and duo-colour displays, so that a pixel as defined herein includes asubpixel. The monochrome objects in the virtual scene can be considered the surface to be recolouredupon re-rendering, for example. It should also be appreciated that the set of spectral fitting weights S^ may take the form of a matrix. Further operations on the spectral fitting weights, such as adjustments or conversions, may takethe form of matrix operations on the matrix of spectral fitting weights. Matrix operations generally requireonly little computing resources in a computer system.It should further be noted that the inverse fitting may be performed using cubic interpolation or multi-cubic interpolation (if more dimensions are involved), as is generally known in the art. The interpolation may use cubic splines which are interpolation-enabled functions that may exactly fit the control points. Extrapolation may sometimes be applied in addition to interpolation. The inventor has considered that today’s rendering engines are still relatively slow and / orinaccurate. When the image is changed using such a rendering engine (for example because an object,or part thereof, is desired to be re-coloured) this takes considerable time because the rendering engineneeds to re-compute the RGB values (colour) for each individual pixel of the image. In contrast, thecomputer-implemented method and computer system as disclosed herein only require a pre-renderingof a few monochromatic images for appropriately selected intrinsic reflectance levels R. Pre-renderingis a step executed prior to rendering the full colour image and is, possibly, executed on another computerdevice than the full colour rendering operation to display the image. All subsequent radiance changesfor an object that need to be made in the image, for example changing the colour of the object, may notrequire a further pre-rendering of images, but are accounted for in spectral fitting weights, the calculationof which may require fewer computational resources and / or may be performed in advance and / or maybe conducted on another computer device. A set of spectral fitting weights per wavelength is obtainedby calculation. For example, three spectral fitting weights per wavelength are used when three controlpoints have been used. These spectral fitting weights are obtained from an inverse fitting operation resulting in monochromatic fitting weights that are independent on the spectral reflectance and radianceof the pixels and therefore apply to all pixels in the image. The inverse fitting operation has been foundto be valid as a result of the continuously increasing (decreasing) radiance levels L for increasing(decreasing) intrinsic reflectance levels R. The spectral fitting weights can be determined prior tocombining them with the pre-rendered images, so that each pre-rendered monochromatic image ismultiplied by a single weight so that the images can be accumulated thereafter. Consequently, renderingspeed can be enhanced significantly. The accuracy of the rendering is also enhanced by performing operations in spectral space. The monochrome pre-renderings obtained for the control points can be stored in a single file for storage or transmission. In one embodiment, the computer-implemented method may involve a step of applying aconversion operation to convert the spectral fitting weights to perceptual fitting weights for each of theplurality of wavelengths. The perceptual fitting weights may be associated with a perceptual chromaticityspace. For example, tristimulus fitting weights using values X^, Y^, Z^ representing the human eyesensitivity may be used for each of the plurality of wavelengths. The values X^, Y^, Z^ may pertain toweights in the CIE XYZ colour space. As another example, the Long Middle Short, LMS, chromaticity space can be used with L^, M^, S^ fitting weights. Application of this conversion operation can be performed in advance of rendering the image,thereby improving speed, and is suitable to generate three values for X, Y, and Z or other perceptualfitting weights. These perceptual fitting weights can subsequently be used for conversion to an RGBlinear colour space as will be described below. The conversion operation may comprise a multiplicationof an XYZ matrix with a matrix comprising the spectral fitting weights S^ as will be further elaborated on in the detailed description. In one embodiment, the computer-implemented method may involve a step of applying at leastone RGB conversion operation on the spectral fitting weights or perceptual fitting weights, such as thetristimulus fitting weights, to render the image on the display screen. This may include applying the RGBconversion operation on spectral fitting weights already converted into the XYZ space, i.e. the tristimulusfitting weights, as described in the previous paragraph.Optionally, the perceptual fitting weights are first applied to radiance levels L1, L2, L3 of the pre- rendered pixels before applying the at least one RGB conversion operation. Such an accumulation prior to conversion to the RGB colour space may be beneficial, for example for an image containing an RGB coloured part. The accumulation may however also be applied for achromatic images. The embodiment facilitates rendering the image on the display screen by converting the XYZvalues, for example, to the RGB colour space applied in display screens. The conversion may,alternatively (for example for achromatic images) comprise a matrix multiplication with a 3x3 matrix withRGB conversion coefficients as will be further elaborated on in the detailed description. It is noted thatthe RGB conversion coefficients may be adapted to account for display screens characteristics and / orambient characteristics (e.g. viewing conditions). The conversion may be applied before rendering the image. It should be noted that actual rendering on an RGB display screen may involve further steps, such as opto-electronic conversion (OECF) to account for non-linearity of RGB display screens. OECF maybe applied to linear RGB before converting to sRGB or while converting to sRGB, for example. In one embodiment, the computer-implemented method may involve a step of adjusting one ormore of the spectral fitting weights S^ using at least one of spectral power distribution and (relative)intensity for at least one virtual lamp in the image. It should be noted that the method may regard a collection of virtual lamps as one virtual lamp. The embodiment allows a user of the computer- implemented method to render images taking account of one or more different virtual lamps in the image.The effect of different illuminations on the apparent colour of the object may be evaluated on the displayscreen, for example. The effect of the lamp may be pre-calculated and may be pre-encoded into the spectral fitting weights S^, for example, for the different spectral powers and intensities in advance to enhance rendering speed. Spectral processing of lamp effects improves accuracy as compared to adjustment of colour temperatures of virtual lamps or an RGB-based multiplier matrix of each lamp, as regularly encountered in RGB processing. The pre-calculation of lamp effects can provide further advantages. In one embodiment the computer-implemented method is executed in a computer system comprising at least a first computer device and a second computer device. The first computer device may perform the steps of calculating the spectral fitting weights S^ and adjusting the spectral fitting weights S^ using at least one of spectral power distribution and relative intensity for at least one virtual lamp in the image. The first computer device may then transmit information comprising the adjusted spectral fitting weights to the second computer device. In this manner, the second computer device can no longer derive the spectral fitting weights S^ without knowledge of the spectral lamp characteristics, so that an effective protection of thespectral fitting weights, and hence from the, possibly proprietary, reflectance data R’ of the selectablecolours for different wavelengths is obtained.Alternatively, or in addition, the method may include steps for the second computer device. The second computer device may perform the step of receiving information comprising the adjusted spectralfitting weights and rendering the image using the information comprising the adjusted spectral fittingweights on the display screen. It should be appreciated that the information comprising the adjusted spectral fitting weights mayinclude further conversions to the CIE XYZ colour space and / or RGB linear colour space as describedabove. The method allows obtaining images in different spectral and colour spaces.In one example, spectral radiance levels L’ are obtained for each pixel for each of the plurality ofwavelengths for the selected colour of the object based on the set of spectral fitting weights for the plurality of wavelengths and the radiance levels (L1, L2, L3) of the control points of the pre-renderedpixels. In this manner, spectral radiance levels L’ of a pixel of a spectral image are obtained which canbe appreciated as a weighted accumulation of the pre-rendered pixels. For example, in case of threecontrol points CP1, CP2, CP3, such weighted accumulation may be written as:per pixel, wherein L’^^^is the spectral radiance, or a prediction thereof, of the pixel for a particularwavelength ^. For the entire image, i.e. all pixels, this image is a weighted accumulation of the pre-rendered images, wherein for each pixel the spectral radiance is obtained. Another example involves obtaining an image in XYZ-space. Such an image can be obtained by obtaining eye-sensitivity corrected luminance levels X, Y, Z for each pixel for the selected colour of the object based on the set of spectral fitting weights for the plurality of wavelengths converted using aconversion operation and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels.The conversion operation may comprise the conversion operation on the spectral fitting weights usingvalues X^, Y^, Z^ representing eye sensitivity for each of the plurality of wavelengths as mentionedabove. In this manner, a luminance level of a pixel of an image is obtained. For example, in case ofthree control points CP1, CP2, CP3, this conversion may be written as a further weighted accumulation: per pixel. It is noted that the ^ indicates a single wavelength and that the matrix size may increasedependent on the number of wavelengths selected for the visual spectrum (e.g. 31). For the entire image, i.e. all pixels, this image is a weighted accumulation of the pre-rendered images, wherein for each pixel the luminance is obtained. It is noted that a similar operation has been envisaged for the LMS space transformation using associated perceptual fitting coefficients. Yet another example involves obtaining RGB rendering values for the display screen for each pixel for the selected colour of the object based on the spectral fitting weights for the plurality of wavelengths converted using the conversion as described above and the at least one RGB conversion operation and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels. The RGB image is suitable for displaying on an RGB display screen. For example, in case of three control pointsCP1, CP2, CP3 and values X^, Y^, Z^ as tristimulus fitting weights, the RGB conversion can be writtenas: per pixel, wherein [M] represents a 3x3 matrix for conversion from CIE XYZ to linear RGB as generally known in the art. In one embodiment, the matrices [M], the tristimulus matrix and the matrix with spectralweight coefficients, or at least two of these matrices, can be calculated, and optionally pre-multiplied, inadvance and stored or transferred to another computer device. Changes for the image can be obtained via changing the matrices. Alternatively, first the weighted accumulation of pre-rendered pixel is obtained by executing: followed by the matrix multiplication: This approach may be followed in general for achromatic and chromatic images, but particularly, for images comprising an RGB coloured part. Again, it is noted that a similar operation has been envisaged for the LMS space transformation using associated perceptual fitting coefficients. One implementation involves a step for the computer-implemented method of providing spectralfitting weights converted into the XYZ space or RGB space, for example, for each pixel to a graphicalprocessing unit, GPU, of the computer system to render the image. In this manner, the GPU receivesthe weights to be applied to the prerendered pixels in order to render and display the image quickly. This can be expressed as: per pixel, wherein [M’] represents a single 3x3 matrix including the perceptual fitting weight conversionmatrix, such as the tristimulus matrix, and the spectral weight coefficient matrix as described aboveunder the assumption of the use of three control points CP. The matrix [M’] denotes the weights to beprovided to the GPU. It should be noted that the separate matrices from which [M’] are formed may befed to the GPU as well, as an alternative. It should also be noted that the perceptual fitting weight conversion matrix may already have been applied to the radiances L1, L2, L3 in advance, or in the GPU,such as to account for non-achromatic images. Matrix [M] may be provided to the GPU separately.If more control points are used, the dimension of the matrix would be increased (for exampleto 3x4, or 4x3 for four control points or 4x4 for four control points and RGBY output). If furthercharacteristics of the object are of relevance, as described below, this would also influence the size of the matrix. For example, if the image would control two recolourable surfaces, the M’-matrix would be a3x9 matrix and the L-matrix would be a 9x1 matrix.It may occur that further characteristics of the object are of interest for rendering an image, suchas when a second colour is selected for a second object (e.g. a surface of a different colour). Anothercase may involve a situation wherein the colour of the object depends on the viewing / illumination geometry, such as a viewing angle for the objection, for example in case of angle dependent intrinsicsurfaces (as one may observe for metallic car paints, for example) or volume reflectance / transmission.Yet another case may involve a change in refractive index of the object that may need to be rendered quickly. The addition of further characteristics of the object for rendering can be represented as adding further dimensions to the L-R and R-L planes so that L-Rnand Rn-L n-dimensional spaces are formedwith control points for each of the planes for which multi-cubic inverse interpolation may be applied.Particularly, the computer-implemented method may comprise the step of assisting rendering of at least one further characteristic of the object in the image, wherein each further characteristic of one or another object adds a dimension with further control points for inversely fitting a control plane to obtain the spectral fitting weights. In one embodiment, the image may comprise an RGB coloured part, such as a digital photographor an RGB coloured surface or object. The method may involve at least one step of a further conversionoperation applied during pre-rendering of the pixels or to the spectral fitting weights, i.e. after the pre-rendering to account for the RGB coloured part. For example, the further conversion operation mayinvolve application of further matrices. The rendering of such an image in RGB space, for example, may be written as, when applied after pre-rendering of the pixels, i.e. during rendering of the image: wherein matrix [M’] represents a single 3x3 matrix including the perceptual fitting weight conversion matrix and the spectral fitting weight coefficient matrix as described above, matrix [M]-1represents the inverse of matrix [M] for RGB conversion and [BR] is a matrix, such as a Bradford adaptation matrix, to convert the illuminant dependent X, Y, Z to illuminant-independent colour space in which the spectral fitting weights S^ operate (through [M’] in this case). The RGB photograph is converted into XYZ colour space during the pre-rendering. In this manner, a collection of three spatially identical monochromatic scenes (one for the red subpixel, one for the green subpixel, and one for the blue sub-pixel) is obtained wherein the photo pixels have constant intrinsic monochromatic reflectance / emittance across all pre- renders. Then, as a final step, after recolouring the three spatially identical scenes, the three rendered images may be combined. In one embodiment, the prerendered pixel and image is a frame of a video sequence of frames.As a result of the disclosed computer-implemented method, images may be changed accurately andvery quickly enabling, for example, virtually real-time re-colouring of a video. The pre-rendered pixel andimage may also be obtained from a special camera type, special camera format, a light-field processing algorithm, a denoising operation and / or an artificial intelligence image generator. The light field may be stored for every control point separately or in a compressed format. In one embodiment, the computer system may comprise at least a first computer device and a second computer device wherein the steps of the computer-implemented method are partly executed on the first computer device and partly executed on the second computer device. Optionally, the first computer device and second computer device have distinct computing resources. For example, pre- rendering of the monochromatic pixels, which may be computationally intensive, may be executed on a computer device with more computing resources. While the prerendering and rendering may be executed on a single computer device, rendering may also be performed on another computer device, such as a client computer, for displaying the image. Particularly, in one embodiment, the first computer device may be configured to obtain the atleast three monochromatic pre-rendered pixels for each pixel of the object for at least three intrinsic reflectance levels (R1, R2, R3) of each pixel from a pre-rendering algorithm, wherein each of the at least three intrinsic reflectance levels (R1, R2, R3) corresponds to a radiance level (L1, L2, L3) to constitute at least three respective control points (R1, L1; R2, L2; R3, L3) in a radiance vs. intrinsic reflectance plane, L-Rint. The first computer device is also configured to provide pre-rendered images corresponding to the control points to the second computer device. Particularly, in one embodiment, the second computer device is configured to store informationrepresentative of the spectral fitting weights S^^^such as matrix [M’] described herein. It is noted that matrix [M’] or parts thereof, may also be calculated locally at the second computer device. The second computer device may alco be configured to receive pre-rendered images corresponding to the control points from the first computer device, such as at least radiance levels {L1, L2, L3} per pixel. The second computer device may be configured to render the image based on the information representative of the spectral fitting weights and the pre-rendered images on the display screen of the second computer device. In one embodiment, the second computer device is configured to send information regardingdisplay characteristics or display information to the first computer device. The first computer device maytake this information into account for a further conversion operation, for which the effect may be encoded into the spectral fitting weights S^ and / or the matrix [M’], for example. In this manner, the rendering and display of the image may be tailored to the specific second computer device. Afurther aspect of the disclosure relates to a computer program comprising one or more softwarecode portions that, when executed by a computer system, are configured to execute the computer- implemented method as disclosed therein. A still further aspect of the present disclosure includes a carrier configured to store the above- mentioned computer program. As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, a method or a computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module" or "system." Functions described in this disclosure may be implemented as an algorithm executed by a processor / microprocessor of a computer. Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied, e.g., stored, thereon. Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a computer readable storage medium may include, but are not limited to, the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fibre, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of the present invention, a computer readable storage medium may be any tangible medium that can contain, or store, a program for use by or in connection with an instruction execution system, apparatus, or device. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fibre, cable, RF, etc., or any suitable combination of the foregoing. Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages,including an object-oriented programming language such as Java(TM), Smalltalk, C++ or the like andconventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the person's computer, partly on the person's computer, as a stand-alone software package, partly on the person's computer and partly on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the person's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). Aspects of the present invention are described below with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor, in particular a microprocessor or a central processing unit (CPU), of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer, other programmable data processing apparatus, or other devices create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function / act specified in the flowchart and / or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. Moreover, a computer program for carrying out the methods described herein, as well as a non-transitory computer readable storage-medium storing the computer program are provided.Elements and aspects discussed for or in relation with a particular embodiment may be suitably combined with elements and aspects of other embodiments, unless explicitly stated otherwise. Embodiments of the present invention will be further illustrated with reference to the attached drawings, which schematically will show embodiments according to the invention. It will be understood that the present invention is not in any way restricted to these specific embodiments. BRIEF DESCRIPTION OF THE DRAWINGS Aspects of the invention will be explained in greater detail by reference to exemplary embodiments shown in the drawings, in which: FIG.1 is a schematic illustration of an embodiment of a computer system configured to execute a computer-implemented method for rendering an image comprising at least one object on a display screen; FIG. 2 is schematic illustration of another embodiment of a computer system configured to execute a computer-implemented method for rendering an image comprising at least one object on a display screen; FIG.3 is a diagram comprising intrinsic reflectance measurements or predictions for a number of wavelengths for some exemplary paints; FIG.4 is a visualization of some basic concepts of the disclosed computer-implemented rendering method; FIG. 5 depicts a flow chart comprising some steps of the computer-implemented method for assisting rendering of an image on a display screen; FIG. 6 is a visualization of some basic concepts of an extended embodiment of the disclosedcomputer-implemented rendering method; and FIG. 7 is a visualization of a multi-dimensional L-R space showing splines for two objects from apre-rendering engine or for two characteristics of an object; andFIG.8 depicts a processing system according to an embodiment for a computer system accordingto FIG.1 or FIG.2. DETAILED DESCRIPTION OF THE DRAWINGS FIG.1 is a schematic illustration of an embodiment of a computer system 10 configured to executea computer-implemented method for rendering an image for which some steps are exemplified in the flow chart of FIG.5. Computer system 10 comprises at least a processing system 11 and an internal or external database DB. The computer system 10 also comprises a display screen 12 on which the image can be displayed. FIG.2 is a schematic illustration of another embodiment of a computer system 10 configured to execute a computer-implemented method for rendering an image. The computer system 10 comprises at least a first computer device 10A and a second computer device 10B wherein steps of the computer-implemented method may be partly executed on the first computer device 10A and partly executed onthe second computer device 10B. The first computer device 10A and second computer device 10B may be connected via one or more networks NW. Both the first computer device 10A and second computer device 10B have processing systems (not shown) for executing one or more steps of the disclosed computer-implemented method. The first computer device 10A and second computer device 10B may have distinct computing resources. For example, the first computer device 10A may have higher processing power than the second computer device 10B. The first computer device 10A may have access to a database DB. The second computer device 10B comprises a display screen 12B to display the image. It is noted that the display screens 12, 12B may each be an RGB screen, but may also include a display screen comprising more sub-pixels, such as a yellow subpixel. The method as disclosed herein also applies to such screens, such as RGBY, mutatis mutandis. FIG.3 is a diagram comprising measurements or predictions of an intrinsic reflectance R’ for fourspecific paints, for example, of a paint manufacturer for some wavelengths ^ over some wavelengthinterval. A paint manufacturer may offer thousands of paint colours for which the reflectance R’ is known,measured or predicted, for a plurality of wavelengths ^. These wavelengths are wavelengths within thevisible spectrum of approximately 400-700 nm. One may, for example, divide the 400-700nm spectralrange into 10nm intervals and obtain 31 reflectance levels R’ for this interval, as shown by the dots inFIG. 3. Another possibility is to have 5 nm, 15 nm or 20 nm intervals with corresponding reflectancelevels R’. The reflectances R’ may be stored in the database DB of FIG. 1 and / or FIG. 2 for somewavelengths ^^^The reflectances R’ may have been predicted by using some algorithm or model and may also be calculated on the fly or input by a human. ^ For example, it is noted that the reflectance R’ as stored in the database DB may be based onspectral measurement of the paint but may also contain simulated spectral measurement of the paintcolour using an optical model (such as Kubelka Munk’s model) that was trained on measurements ofpainted surfaces. This allows the user to choose and mix toners, rather than select from ready-mixed paints. FIG.4 is a visualization of some basic concepts of the disclosed computer-implemented method for rendering or assisting rendering of an image. A brief summary of this method involves that, in each rendered image, painted surfaces are set to reflect a percentage of light in terms of red, green, and blue (RGB). For example, a virtual scene maybe set to have one white lamp, and the surface would have an intrinsic reflectance of 0% in a first pre-rendered image with pre-rendered pixels, the surface would have an intrinsic reflectance of 70% in a second pre-rendered image with pre-rendered pixels, and the surface would have an intrinsic reflectanceof 100% in a third pre-rendered image with pre-rendered pixels as shown at the top of FIG.4.At presentation time, pre-rendered pixels of the pre-rendered images are interpolated byperforming weighted accumulation of each. At presentation-time, or earlier, the weights are computedby inverting a natural spline that fits a number of control points. It is noted that other interpolation and / orextrapolation functions than a natural spline may be applied. The inverse fitting is performed at eachwavelength along the spectral measurement of the paint colour for an object. The spectral weights arethen accumulated per pre-rendered pixel to obtain three weights per pixel. These weights may pertain to a spectral image or to the CIE XYZ colour space convention, for example. For another paint colour, the weights may need to be re-computed, but it is not needed to re-render the pre-rendered images with pre-rendered pixels. Now in more detail, the diagrams at the top of FIG.4 visualize an object OBJ for three pre-selectedintrinsic reflectance levels Rint. for each pixel of the object. In FIG.4, the object OBJ is a wall in a room,for example. In the top left diagram, the object OBJ is given a reflectance level R1 of 0% for red, greenand blue, in the top middle diagram a reflectance level R2 of 70% for red, green and blue and in the topright diagram a reflectance level R3 of 100% for red, green and blue.Typically, R1 and R3 are selected to be 0% and 100% (or vice versa). The selection of thereflectance level R2 depends on various factors. Successful attempts have been made with R2=70% and R2 =80%. It is noted that more or fewer values for R can be selected. These diagrams of FIG.4 are, for example, pre-rendered in the computer system 10 of FIG 1 andFIG. 2, such as in the first computer device 10A in FIG. 2. The pre-rendering of these images is performed prior to the actual rendering of the coloured image in the computer system 10 of FIG.1 and FIG.2 to display the image, for example on the second computer device 10B in FIG.2. The pre-rendering is executed with a rendering algorithm configured to predict a radiance level L for each pixel in the image. It is noted that, if a pre-rendering algorithm does not produce radiance L but some other linear unit of light K, the computer-implemented method and computer system as disclosedherein would also work by taking into account a conversion from K^ to X, Y, Z. or L, M, S.The lower left curve in FIG. 4 illustrates a radiance vs. intrinsic reflectance plane L-Rint whereinthe pre-rendering engine has yielded radiance levels L1, L2 and L3 for the intrinsic reflectance levelsR1, R2 and R3 for a single pixel. The combinations (R1, L1), (R2, L2) and (R3, L3) may be consideredto constitute control points CP1, CP2, and CP3. Such a curve can be construed for each pixel by fittingthrough the control points CP1, CP2, CP3 valid for the pixel under consideration.The fitting may comprise a cubic interpolation operation and may be described as a matrixfunction for a spline: [L] = [P] [Rint] with and wherein the subscript i in Ri is the intrinsic reflectance for control point CPi. The intrinsic reflectances Ri have been chosen as 0%, 70%, 100% reflectance because it hasdemonstrated good colour precision while using only few pre-rendered images. Using few pre-renderedimages is desirable in, for example, an online (internet) application that may require download or otherprovision of the pre-rendered images to a client browser at computer 10B in FIG.2, for example.It should be noted, as briefly mentioned above, that the computer-implemented method may alsobe performed with fewer or more control points. If more control points CP are used (for example CP4 orCP4 and CP5), the rendering accuracy may increase at the cost of using more computer resources. Fewer control points (e.g. only control points CP1 and CP3) may be used if lots of objects are to be pre- rendered at the cost of decreased accuracy. One may consider that the matrix [P] applies for each pixel individually and that, in combinationwith the data as stored in the database DB as shown in FIG.3, one may render an image for a selectedpaint colour, provided that the matrix [P] is calculated for each pixel. Since the number of pixels may be high (e.g. 4 million pixels for a 2000x2000 image), such calculations require considerable computing resources. The curve in the L-Rint plane shown in the bottom left part of FIG.4 is non-linear resulting frominterreflection effects with other objects in the image, such as reflection from the opposite, white, wall inthe top diagrams of FIG. 4. The inventor has observed that the curve for each pixel is always steadilyincreasing, so that for each intrinsic reflectance Rint there exists a single value for the radiance L. Accordingly, the inventor has considered that this allows for an inversion of the spline, as shown in thebottom right corner of FIG. 4, resulting in an inverted spline. The inverted spline can be describedmathematically as:[Rint] = [Q] [L] with [Q]= [P]-1wherein The matrix [Q] comprises monochromatic fitting weights and only needs to be evaluated once for the image instead of for each pixel separately, since the Rint-values (here R1, R2 and R3) are the same for each pixel. A condensation step may be performed on the matrix [Q] to obtain a condensed matrix [W]with spectral fitting weights W as follows: where … stands for 11, 12, 21, 22. The condensation step combines successive rows of the matrix [Q], except for the first and the last row, into matrix [W]. It should be noted that the condensation step may improve efficiency but is not required, so that monochromatic fitting weights Q may be used instead of W. Notably, the matrix [Q], or [W], only comprises the pre-selected values for the intrinsic reflectances Rintfor which the pre-rendered images were made. The matrix [Q] is independent of both the reflectances R’ for the paint (see FIG.3) and the values for L1, L2 and L3. For each wavelength ^^ the following spectral fitting weights S apply: wherein the upper left part W11 of matrix [W] with monochromatic fitting weights W applies if the intrinsicreflectance for a particular wavelength ^ is smaller than the value for the intrinsic reflectance R2 atcontrol point CP2 and the lower left part W21 of matrix [W] with monochromatic fitting weights W appliesif the intrinsic reflectance for a particular wavelength ^ is greater than or equal to the value for theintrinsic reflectance R2 at control point CP2. This selection results from the observation that the radianceL continuously increases as a function of the intrinsic reflectance R. It is noted that for volumes, alsoradiance L is always increasing or always decreasing if volumetric reflectance or volumetric transmissionis increasing. The values R’^ are obtained from the intrinsic reflectance data known for a particular paintcolour, for example, that may be stored in database DB. Examples have been shown in FIG.3 above. Accordingly, a matrix [S] can be written with spectral fitting weights S^ for the wavelengths ^ foreach of the control points CP in the selected range of 400-700nm, for example. This matrix [S] can be denoted as follows: One step of the rendering the image involves application of spectral fitting weights S^ to obtain aspectral image with spectral radiance values L’^ as follows: (A1) Notably, only in this step the radiance values L1, L2 and L3 of the pixels at the control points CP1, CP2and CP3 are used if a spectral image would be desired. This step may be perceived as an intrinsicreflectance dependent shift of the inverse spline along the L-axis in FIG.4.It is noted that the application of the radiance values L1, L2 and L3 of the pre-rendered images may be further postponed to perform further matrix operations if a spectral image is not required. This enables fast operation when further conversions are required, for example for display on an RGB display screen 12, 12B. For example, if an image in XYZ-space needs to be obtained, a conversion operation may beapplied on the spectral fitting weights S^ using values X^, Y^, Z^ representing eye sensitivity for each ofthe plurality of wavelengths ^ as mentioned above. In this manner, a luminance level of a pixel of animage is obtained. For example, in case of three control points CP1, CP2, CP3, this conversion may be written as: Notably, only in this step the radiance values L1, L2 and L3 of the pixels at the control points CP1, CP2 and CP3 are used. The matrix multiplication may be performed in advance and, possibly, on another computer device. For the entire image, i.e. all pixels, this image is a weighted accumulation of the pre- rendered images, wherein for each pixel the luminance X, Y, Z is obtained. Yet another example involves obtaining RGB rendering values for a display screen for each pixelfor the selected colour of the object OBJ based on the of spectral fitting weights S^ for the plurality ofwavelengths, the matrix with values X^, Y^, Z^ representing eye sensitivity for each of the plurality ofwavelengths and a matrix [M] accounting for RGB conversion. For example, in case of three control points CP1, CP2, CP3, the RGB conversion can be written as: It is noted that only after the matrix multiplications for [M], [XYZ] and / or [S], the radiance valuesL1, L2 and L3 of the pixels at the control points CP1, CP2 and CP3 may be used in order to savecomputing resources. The matrix multiplication(s) may be performed in advance and, possibly, onanother computer device. The pre-rendered images may be stored in a single computer file. Changesfor the image can be obtained via changes of the matrices and multiplication which is a computationallylight task. For the entire image, i.e. all pixels, this image is a weighted accumulation of the pre-rendered images, wherein for each pixel the luminance is obtained. The RGB image is suitable for displaying on an RGB display screen, such as display screen 12, 12B. FIG.5 is a schematic illustration of some steps of the computer-implemented method as disclosed herein. In step S1, pre-rendered pixels are obtained to result in monochromatic pre-rendered images foreach pixel for at least two, preferably at least three selected reflectance levels R.In step S2, spectral fitting weights S^are calculated for a plurality of wavelengths ^ from an inversespline as shown in FIG. 4, bottom right, using the reflectances R’ for the wavelengths as known fromthe database DB for the selected colour. Further operations, such as condensation, shown above, may be performed on the matrix with spectral fitting weights S^. In step S3, the spectral fitting weights S^are applied to assist in rendering the image. For example, in step S3-1 shown at the right-hand side of FIG.5, the spectral fitting weights S^ may be applied to the radiance levels L1, L2 and L3 for each pixel of the pre-rendered images to obtaina spectral image SI. An example for such an application is shown by equation A1) above, resulting in aweighted accumulation of pixels of pre-rendered images. This process is computer display- andobserver independent. For the computer display- and / or observer dependent part, further conversions may need to beapplied. For example, in step S3-2 shown at the right-hand side of FIG.5, an image XYZI is obtained inthe CIE XYZ space. Such an image can be obtained by obtaining eye-sensitivity corrected luminancelevels X, Y, Z for each pixel for the selected colour of the object based on the set of spectral fitting weights for the plurality of wavelengths converted using a conversion operation and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels. An example for such an application is shownby equation A2) above, resulting in a weighted accumulation of pixels of pre-rendered images. Forexample, in step S3-3 shown at the right-hand side of FIG.5, an image RGBI is obtained in the RGB space. This image may be based on the spectral fitting weights for the plurality of wavelengths converted using the conversion as shown in step S3-2 and the at least one RGB conversion operation and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels. An example of an application to these radiance levels is shown by equation A3 above, resulting in a weighted accumulation of pixels of pre-rendered images. It is noted that an image RGBI may also be obtained by first obtaining the weighted accumulation of the radiance levels L1, L2, L3 using the spectral fitting weights and perceptual fitting weights per equation A2 above, followed by application of the RGB conversion operation as shown in FIG.5 by the arrow from image XYZI to RGBI. Such an accumulation prior to conversion to the RGB colour space may be beneficial, for example for an image containing an RGB coloured part. The accumulation may however also be applied for achromatic images. Again, it is noted that a conversion operation to some other perceivable chromaticity space, such as the LMS space, may also be used at this stage. It is noted that different matrices, for example three-by-three matrices, may be applied to convert into linear RGB colour space for a colour-deficient observer (e.g.: protanopia, deuteranopia, tritanopia). Colour-deficient observers suffer from deficient cone responses in their eyes. The computer- implemented method disclosed herein can be switched to include such cone-response, so that a view as perceived by colour-blind observers can be obtained on a display screen. In one embodiment, an image may comprise an RGB coloured part, such as a digital photograph.The method may comprise a pre-conversion of RGB to XYZ space during the pre-rendering. The RGBluminance values for the ‘photograph’ may therefore be stored in terms of radiance (but as a constant across wavelengths for a subpixel). On post-render, an M matrix is applied as the final step which causes the RGB luminance values to be reconstructed (including additions that are caused by other parts of thelight field). So, a collection of three spatially identical monochromatic scenes (one for the red subpixel,one for the green subpixel, and one for the blue sub-pixel) is obtained wherein the photo pixels haveconstant intrinsic monochromatic reflectances across all pre-rendered images. Then, as a final step,after recolouring the three spatially identical scenes, the three rendered images may be combined. Thismay be accounted for in step S3-3 as well. Another example of a conversion in step S3-3 includes taking account of display characteristics of the display screen 12, 12B. In one embodiment of FIG. 2, the second computer device 10B is configured to send information regarding display characteristics or display information to the first computer device. The first computer device may take this information into account for a further conversion operation in step S3-3. In this manner, the rendering and display of the image may be tailored to the specific second computer device. The RGB image is suitable for displaying on an RGB display screen, possibly after conversion from linear into companded (s)RGB. Step S4 illustrates the display of the image on the RGB display screen, such as display screen 12 in FIG.1 or display screen 12B in FIG.2. One embodiment involves a step or the computer-implemented method of providing spectralfitting weights converted into the RGB space for each pixel to a graphical processing unit, GPU, of thecomputer system 10 to render the image. In this manner, the GPU receives the weights to be applied to the pre-rendered pixels in order to render the image quickly. It should be appreciated that one or more further conversions of weights as disclosed herein may also be executed by the GPU or outside the GPU dependent on the availability of computing resources for example. Thereto, one would provide the converting matrices to the GPU too. On the GPU, one then either combines the matrices by multiplicationbefore using them during image accumulation -or- one first uses the spectral fitting weights to interpolatethe images and then convert them from spectral to XYZ and then to RGB. Notably, the RGB matrix [M] may be provided to the GPU separately for application after accumulation of the spectral and perceptual fitting weights to the radiance levels L1, L2 and L3 in the GPU. It has further been considered that a multitude of lamps can be evaluated separately and then as a final step be combined using an intensity multiplier. It is noted that the computer-implemented method can also be applied to other display screens, such as mono-colour computer displays (i.e.: 1 sub-pixel per pixel) or duo-colour pixels et cetera. Someadvanced displays contain a fourth subpixel (typically a yellow one) and are not limited to the threesubpixels of the sRGB model. For such displays, the method may be extended to also account for such fourth subpixel by using a 3×4 matrix to go from CIEXYZ to RGBY. If the object OBJ needs to be re-coloured REC, it is noted that the re-rendering of the pre-renderedimages is not required provided that the ray directions in the light field are the same or similar. Re-colouring of objects in the images only require matrix operations in the above example (see the arrowREC returning to step S2) which can occur at high speed. For example, in the above procedure, the pre-rendering of the pre-rendered images typically takes minutes to hours, while the computation of the weights takes nanoseconds. Most importantly, the weighted accumulation of the pre-rendered images and display of the result can, on a graphics processing unit (GPU), be executed at well over 60 frames per second (fps). This step could also be executed on a central processing unit (CPU) or any other digital processor, such as the processing unit of computer device 10B in FIG.2 (that may have obtained the pre-rendered images from computer device 10A in FIG.2). The spectral fitting weights mentioned above could also be pre-computed and stored for laterretrieval – such storage would be about 1 kilobyte per replacing paint colour, for example. One can storethe pre-computed weights on a client computer 10B, allowing an installed software (or plug-in) to remain disconnected from the internet while re-colouring a virtual scene. In the above description, it has been assumed that there was only one object OBJ with a particularpaint colour. If the virtual image contains objects with different paint colours, multiple objects OBJ1,OBJ2 may be defined and the computer-implemented method may be applied to such images of virtualscenes as well. FIG. 6 shows an image with two objects OBJ1, OBJ2, with images pre-rendered for all combinations of the intrinsic reflectances Ri. (e.g.: for two paint colours: RGB=0%,0% and RGB = 0%,70% and RGB=0%,100% and RGB= 70%,0% and RGB=70%,70% and RGB=70%,100% andRGB=100%,0% and RGB = 100%,70% and RGB=100%,100%). In general, adding a second dimensionwith again three control values provides for pre-render an additional 3×3-3=6 images. A third dimension needs 3×3×3-3×3=27-9=18 additional images to pre-render. FIG.7 shows an example of splines for two objects OBJ1, OBJ2 obtained from a pre-renderingengine yielding radiance levels L for the intrinsic reflectance levels R1, R2 and R3. The L-R planes areorthogonal to each other, and the curves fitted through the control points CP (the nine black dots) bybicubic interpolation, for example, are steadily increasing in each of the two dimensions. For clarity, the curves fitted in the plane of the page are shown in grey and the curves fitted perpendicular to the page are shown in black. As explained in FIG. 4 for one dimension, for two dimensions also inverted curves in the R-Lplane can be determined and spectral fitting weights S^^can be calculated using the appropriatereflectances R’ associated with the two colours selected for the objects OBJ1, OBJ2.In a similar manner, other characteristics of the object OBJ in FIG.4 may be accounted for by using further dimensions. For example, the colour of the object OBJ in FIG. 4 depends on theviewing / illumination angle, for example when one or more metallic colours are used in an image. Thesecond dimension may then relate to the intrinsic reflectance R of the object OBJ in FIG.4 for a different viewing angle. Further angles would add further dimensions of intrinsic reflectance R and associated radiances L. Yet another case may involve a change in refractive index of the object that may need tobe rendered quickly. Also, for such further dimensions n, radiance L is continuously decreasing orcontinuously increasing, for example if the index-of-refraction for dielectric material interfaces (surfaces) is increasing. In one embodiment, the computer-implemented method may be applied to a sequence of images individually, wherein the sequence of images represents frames of a video. The multiple pre-rendered images may be stored as sub-images collated inside of one frame. Upon presentation, the sub-images are accumulated by weight to construct one equally sized final frame of the same size. The operation is repeated for every frame in the video. The colour of objects in the frame can be modified quickly through modification of the spectral fitting weights while running the video. One could run the video in a loop togive the suggestion of an eternal motion-cycle in the depicted scene. One could skip to a specific frameand pause the video to give the suggestion of manual camera- or object movement.In one embodiment, the computer-implemented method may involve a step of adjusting one or more of the spectral fitting weights S^using at least one of spectral power distribution and relative intensity for at least one virtual lamp in the image. It should be noted that the method may regard a collection of virtual lamps as one virtual lamp. The effect of the lamp may be pre-calculated and may be pre-encoded into the spectral fitting weights S^, for example, for the different spectral powers and intensities in advance. The embodiment allows a user of the computer-implemented method to render images taking account of one or more different virtual lamps in the image. The effect of a different illuminations of a lamp on the apparent colour of the object, such as object OBJ in FIG.4 or OBJ1 and / or OBJ2 in FIG.6, may be evaluated on the display screen 12, 12B, for example. The effect of the lamp may be pre-calculated for the different spectral powers and intensities in advance to enhance rendering speed, before curve fitting. The lamp intensities are multiplied in the measured or predicted intrinsic reflectances as shown in FIG.3, for example. Spectral processing of lamp effects improves accuracy as compared to adjustment of colour temperatures as regularly encountered in RGB processing. One may instead separately recolour / render the scene for each virtual lamp and combine the resulting images (while still in linear RGB). For example: with three lamps, one would render three images and store them in working memory and only thereafter combine them into a final image This would require more memory but may be more energy efficient if one is just interested in changing the overall intensity of any number of virtual lamps but not their spectrum or if one is just interested inchanging the spectrum of one of a multiple of lamps in which case only one of the three working imagesmust be updated before combining the three. The pre-calculation of lamp effects can provide further advantages. In one embodiment the computer-implemented method is executed in a computer system 10 comprising at least a first computerdevice 10A and a second computer device 10B as shown in FIG.2. The first computer device 10A mayperform the steps of calculating the spectral fitting weights and adjusting the spectral fitting weights using at least one of spectral power distribution and relative intensity for at least one virtual lamp in the image. The first computer device 10A may then transmit information comprising the adjusted spectralfitting weights to the second computer device 10B. In this manner, the second computer device 10B canno longer derive the spectral fitting weights S^ without knowledge of the spectral lamp characteristics, so that an effective protection of the spectral fitting weights, and hence from the, possibly proprietary,reflectance data R’ of the selectable colours for different wavelength is obtained.Alternatively, or in addition, the method may include steps for the second computer device. The second computer device may perform the step of receiving information comprising the adjusted spectral fitting weights and rendering the image using the information comprising the adjusted spectral fitting weights on the display screen. The above implementation is related to the rendering and (re-)colouring of surfaces. The computer-implemented method as disclosed herein may also apply to the colouring of volumes. In case of a volume, the intrinsic reflectances Rint are not specified but the intrinsic scattering (r) and absorption(a) are, such as according to the Kubelka-Munk theory. This consumes two dimensions instead of one.It is noted that for volumes, also radiance L is always increasing or always decreasing if volumetric reflectance or volumetric transmission is increasing Also for intrinsic scatter (r) and for absorption (a), three or more control points CP can be selected.It is sometimes difficult to specify these (r) and (a) because they may be unknown for a substance, oronly known by inference for such substance. Furthermore, while the minimum values for (r) and (a) maybe zero, their maximum value is in theory unlimited. The inventor has found ways to map the zero-to-infinity range onto the zero-to-one range, for example by defining a / (a + r) and r / (a + r). As another option, one may specify intrinsic reflectances anyway but then those reflectances as measured for a given thickness of a flat pane (volume) when placed over a black background and when placed over a white background (again consuming two dimensions). There are many other ways to infer or implicitly define the (a) and (r) values by some measurement of a derived property defined by the intrinsics. Figure 8 depicts a block diagram illustrating an exemplary processing system according to adisclosed embodiment, e.g. a video processing system and / or a server system. As shown in figure 8,the processing system 80 may include at least one processor 81 coupled to memory elements 82through a system bus 83. As such, the processing system may store program code within memoryelements 82. Further, the processor 81 may execute the program code accessed from the memoryelements 82 via a system bus 83. In one aspect, the processing system may be implemented as acomputer that is suitable for storing and / or executing program code. It should be appreciated, however,that the processing system 80 may be implemented in the form of any system including a processor anda memory that is capable of performing the functions described within this specification. The memory elements 82 may include one or more physical memory devices such as, forexample, local memory 84 and one or more bulk storage devices 85. The local memory may refer torandom access memory or other non-persistent memory device(s) generally used during actual execution of the program code. A bulk storage device may be implemented as a hard drive or otherpersistent data storage device. The processing system 80 may also include one or more cachememories (not shown) that provide temporary storage of at least some program code in order to reducethe number of times program code must be retrieved from the bulk storage device 85 during execution.Input / output (I / O) devices depicted as an input device 86 and an output device 87 optionally canbe coupled to the processing system. Examples of input devices may include, but are not limited to, a space access keyboard, a pointing device such as a mouse, or the like. Examples of output devices may include, but are not limited to, a monitor or a display, speakers, or the like. Input and / or outputdevices may be coupled to the processing system either directly or through intervening I / O controllers.In an embodiment, the input and the output devices may be implemented as a combinedinput / output device (illustrated in figure 8 with a dashed line surrounding the input device 86 and theoutput device 87). An example of such a combined device is a touch sensitive display, also sometimes referred to as a “touch screen display” or simply “touch screen”. In such an embodiment, input to the device may be provided by a movement of a physical object, such as e.g. a stylus or a finger of a person, on or near the touch screen display. Anetwork adapter 88 may also be coupled to the processing system to enable it to becomecoupled to other systems, computer systems, remote network devices, and / or remote storage devices through intervening private or public networks. The network adapter may comprise a data receiver for receiving data that is transmitted by said systems, devices and / or networks to the processing system80, and a data transmitter for transmitting data from the processing system 80 to said systems, devicesand / or networks. Modems, cable modems, and Ethernet cards are examples of different types ofnetwork adapter that may be used with the processing system 80.As pictured in figure 8, the memory elements 82 may store an application 89. In variousembodiments, the application 89 may be stored in the local memory 84, the one or more bulk storagedevices 85, or apart from the local memory and the bulk storage devices. It should be appreciated thatthe processing system 80 may further execute an operating system (not shown in figure 7) that canfacilitate execution of the application 89. The application 89, being implemented in the form ofexecutable program code, can be executed by the processing system 80, e.g., by the processor 81.Responsive to executing the application, the processing system 80 may be configured to perform oneor more operations or method steps described herein. The application may be an application offering extended reality views. In one aspect of the present invention, one or more components of the computer system 10 asdepicted in FIG.1 or FIG.2 may represent processing system 80 as described herein.Various embodiments of the invention may be implemented as a program product for use with a computer system, where the program(s) of the program product define functions of the embodiments (including the methods described herein). In one embodiment, the program(s) can be contained on a variety of non-transitory computer-readable storage media, where, as used herein, the expression “non- transitory computer readable storage media” comprises all computer-readable media, with the sole exception being a transitory, propagating signal. In another embodiment, the program(s) can be contained on a variety of transitory computer-readable storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information is permanently stored; and (ii) writable storage media (e.g., flash memory, floppy disks within a diskette drive or hard-disk drive or any type of solid-state random-access semiconductor memory) on which alterable information is stored. Thecomputer program may be run on the processor 81 described herein.The terminology used herein is for the purpose of describing particular embodiments only and isnot intended to be limiting of the invention. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will befurther understood that the terms "comprises" and / or "comprising," when used in this specification,specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing thefunction in combination with other claimed elements as specifically claimed. The description ofembodiments of the present invention has been presented for purposes of illustration but is not intendedto be exhaustive or limited to the implementations in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the claims. The embodiments were chosen and described in order to best explain the principles and some practical applications of the present invention, and to enable others of ordinary skill in the art to understand the present invention for various embodiments with various modifications as are suited to the particular use contemplated.
Claims
CLAIMS1. A computer-implemented method for assisting rendering of an image comprising at least oneobject on a display screen using a computer system, wherein the method comprises the steps,for each pixel of the image, of- obtaining at least three monochromatic pre-rendered pixels of the object for at least threeintrinsic reflectance levels (R1, R2, R3) of each pixel from a pre-rendering algorithm, whereineach of the at least three intrinsic reflectance levels (R1, R2, R3) corresponds to a radiancelevel (L1, L2, L3) to constitute at least three respective control points (R1, L1; R2, L2; R3, L3)in a radiance vs. intrinsic reflectance plane, L-Rint;- calculating, for a plurality of wavelengths ^ for a selected spectral colour for the object, a setof spectral fitting weights S^ derived from a reflectance level R’ associated with the selectedspectral colour and monochromatic fitting weights, wherein the monochromatic fitting weightsresult from inversely fitting a curve through the at least three control points (R1, L1; R2, L2;R3, L3) in an intrinsic reflectance vs. radiance plane Rint -L, and;- applying the spectral fitting weights to assist rendering the image.
2. The method according to claim 1, further comprising the step of applying a conversion operationto convert the spectral fitting weights S^ to perceptual fitting weights for each of the plurality ofwavelengths.
3. The method according to claim 1 or 2, further comprising the step of applying at least one RGBconversion operation on the spectral fitting weights or perceptual fitting weights to render theimage on the display screen, wherein optionally, the perceptual fitting weights are first applied to radiance levels L1, L2, L3 before applying the at least one RGB conversion operation, such asfor an image containing an RGB coloured part4. The method according to any one of the preceding claims comprising the step of adjusting one ormore of the spectral fitting weights using at least one of spectral power distribution and intensity for at least one virtual lamp in the image.
5. The method according to any one of the preceding claims, wherein the step of applying thespectral fitting weights to assist rendering the image comprises at least one of:obtaining spectral radiance levels L’ for each pixel for each of the plurality of wavelengths for the selected colour of the object based on the set of spectral fitting weights for the plurality of wavelengths and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels; obtaining perceptually corrected luminance levels, such as eye-sensitivity corrected luminance levels X, Y, Z, for each pixel for the selected colour of the object based on the set ofspectral fitting weights for the plurality of wavelengths converted using the conversion operationaccording to claim 2 and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels; obtaining RGB rendering values for the display screen for each pixel for the selected colour of the object based on the spectral fitting weights for the plurality of wavelengths converted usingthe conversion operation according to claim 2 and the at least one RGB conversion operation according to claim 3 and the radiance levels (L1, L2, L3) of the control points of the pre-rendered pixels wherein, optionally, a further adjustment is made to at least one of the spectral fitting weights and converted spectral fitting weights to account for at least one virtual lamp according to claim 4.
6. The method according to claim 5, further comprising the step of providing spectral fitting weights,for example converted according to claim 2 or 3, for each pixel to a graphical processing unit ofthe computer system to render the image.
7. The method according to any one of the preceding claims, further comprising the step of assistingrendering of at least one further characteristic of the object in the image or an object in the image,wherein each further characteristic of the object adds a dimension with further control points for inversely fitting a control plane to obtain the spectral fitting weights.
8. The method according to claim 7, wherein the at least one further characteristic of the objectcomprises at least one of: -a second selected colour for the object;- a viewing / illumination geometry for the object; and- a refractive index of the object.
9. The method according to any one of the preceding claims, wherein the image comprises an RGBcoloured part and wherein a conversion operation is applied during pre-rendering or duringrendering the image to account for the RGB coloured part.
10. The method according to one or more of the preceding claims, wherein each of the pre-renderedpixels received from and the image is at least one of: -a frame of a video sequence of frames;- an image obtained from a special virtual camera type, such as equirectangular camera, mirror-ball camera, cube-map camera and fisheye camera; -an image obtained from a special camera format, such as panorama- an image resulting from a light-field processing algorithm,- an image resulting from a denoising operation; and- an image resulting from an artificial intelligence image generator.
11. The method according to claim 4, wherein the computer system comprises at least a firstcomputer device and a second computer device, comprising at least one of the following sequence of steps: for the first computer device: -calculating the spectral fitting weights and adjusting the spectral fitting weightsaccording to claim 4 -transmitting information comprising the adjusted spectral fitting weights to the secondcomputer device; for the second computer device: -receiving information obtained from the adjusted spectral fitting weights;- rendering the image using the information obtained from the adjusted spectral fittingweights on the display screen.
12. A computer system configured to execute the computer implemented method according to anyone of claims 1 to 11, wherein, optionally, the computer system comprises at least a first computer device and a second computer device wherein the steps of the computer-implemented methodare partly executed on the first computer device and partly executed on the second computer device, wherein, optionally, the first computer device and second computer device have distinctcomputing resources.
13. The computer system according to claim 12, wherein the first computer device is configured to:- obtain the at least three monochromatic pre-rendered pixels for each pixel of the object for atleast three intrinsic reflectance levels (R1, R2, R3) of each pixel from a pre-rendering algorithm, wherein each of the at least three intrinsic reflectance levels (R1, R2, R3) corresponds to a radiance level (L1, L2, L3) to constitute at least three respective control points (R1, L1; R2, L2; R3, L3) in a radiance vs. intrinsic reflectance plane, L-Rint; -provide pre-rendered images corresponding to the control points to the second computerdevice.
14. The computer system according to claim 12 or 13, wherein the second computer device isconfigured to: -store information representative of the spectral fitting weights S^^, perceptual fitting weights,or weights derived therefrom; -receive pre-rendered images corresponding to the control points from the first computerdevice -render the image based on the information representative of the spectral fitting weights andthe pre-rendered images on the display screen of the second computer device15. The computer system according to any one of claims 12 to 14, wherein the second computerdevice is configured to send information regarding display characteristics or display information to the first computer device and the first computer device is configured to take this informationinto account for a further conversion operation.
Citation Information
Patent Citations
Rendering multispectral images on reflective displays
US20100328356A1