Jump to content
Hash, Inc. Forums

Import/Export Color Management issue


detbear

Recommended Posts

I ran into this informative video and couldn't help but wonder if A:M suffers from a similar limitation. This video is lengthy, but if someone has the time to look through it, I'd like to find out if A:M might be set to the old sRGB scale and unable to rise to a better "Dynamic Range" for more realistic renders using a single sun light.

 

Since I don't know a lot about the tech in these matters, I'm wondering if someone else might shed some light on whether A:M could be improved also like Blender is in this video.

 

xhttps://www.youtube.com/watch?v=m9AT7H4GGrA

Link to comment
Share on other sites

  • Hash Fellow

There are several statements in the first few minutes that I am extremely doubtful about such as the assertion that a CRT monitor has an inferior dynamic capability to an LCD monitor. Just that is provably wrong.

 

His comparison of the photo and render at 6:09 completely misstates why those two look different.

 

 

 

I haven't gotten to the end of it yet. His solution (have't gotten there yet) may work in a practical manner, but I sense that he doesn't really know what he's talking about.

 

Again I haven't watched it to the end yet... but if more dynamic range is the key, that's what OpenEXR is for. That is ostensibly "linear data" untainted by any color management You can pretty much render to that and do curve adjustment in post to include or exclude any part of the dynamic range you wish.

 

 

I watch some more later. I'll also note that Yves Poissant has made a number posts of about color management and A:M and that if you say his name three times he will appear.

Link to comment
Share on other sites

  • Hash Fellow

The basic problem is that A:M and any other 3D software can calculate the brightness of the Sun and total darkness and everything in between.

 

However, common image formats like jpg or targa or don't have enough data range of numbers represent all that. They store values of 0 to 255. If 0 is black and 1 is the dimmest detail visible then you can only double brightness 8 times before you run out of numbers and start clipping values.

 

However, that is also about all that the monitors we look at can show. About 8 doublings of brightness from top to bottom. Maybe 9 on great monitor maybe way less on a cheap one. Actual film formats, viewed in person, can do better. Print does worse.

 

Example: If I take a picture of the Sun and then display that on my monitor or print it on paper, that image will not be as bright as the Sun was.

 

So, for any display format, choices have to be made about what part of that nearly infinite range of brightness you could calculate is crammed into what it can actually displayed from min to max.

OpenEXR renders let you store a far greater range of brightnesses... 30 doublings, I think... but you still have the problem that no display can reproduce that.

 

In addition, there is the problem of color....

Link to comment
Share on other sites

  • Hash Fellow

It takes me a while to watch that because I have to pause it every three or four minutes to go vomit. Listening to him chuckle at his own jokes is maddening.

 

 

 

From what i can see, "Filmic Blender" is a render to a high dynamic range format like OpenEXR with a drop down list of post processing presets that do what one would typically do in After Effects.


Look at the image below full screen. On the top is his before and after comparison of "sRGB" and "Filmic Blender"

 

On the bottom, I've applied a slight "Curve" adjustment and a "Level" adjustment to just the sRGB side. It's kind of like a "gamma" change"

Is that result not very similar? Mine is very noisy because I just have a screen grab off YouTube and not the real render. But just that one change has gotten a very similar result.

 

I'm not an expert but I'm not convinced that the Blender Guru is speaking expertly about all the things he is speaking about.

 

Filmic.JPG

  • ____ 1
Link to comment
Share on other sites

  • Hash Fellow

there is also something not-quite-right in his demonstration of "desaturation"

 

I'm still looking into that...

 

 

 

I should note that his lighting technique of lighting the entire room with the light bouncing off the wall... that is something the A:M renderer can only do with Radiosity which is very time consuming.

 

I could light that scene to get a very similar result without radiosity but that is another issue.

Link to comment
Share on other sites

High Dynamic Range (HDR) is frequently used for two different things I've noticed:

 

HDR photos are composite photos that make use of different images. If you have a figure standing in front of a window, you take multiple exposures so that you have some where the outside appears correctly and some where the figure appears correctly. When composited, you get the appearance that you would expect your eye to have. In truth, they always look far more saturated with color than what you're used to. They are beautiful images, but they are a trick, as they are don't add any color levels to your device.

 

HDR is also used for the color levels and contrast ratios that a screen can display. It's not about your monitor recreating the light levels of the sun, but how well it can handle darks and lights and the gamut of colors. HDR makes for a much more beautiful and realistic image, but it's limited by hardware. There's no trickery here. The image looks better because you have more color and light information being displayed.

 

BTB, a CRT allows for a maximum luminance of 100cd/m-squared. An LCD monitor ranges between 250 to 350 cd/m-squared, so there really is a difference. :-)

Link to comment
Share on other sites

  • Hash Fellow

 

BTB, a CRT allows for a maximum luminance of 100cd/m-squared. An LCD monitor ranges between 250 to 350 cd/m-squared, so there really is a difference. :-)

 

But the LCD has worse black levels so the dynamic range gained on the top is more than lost on the bottom.

Link to comment
Share on other sites

  • Admin

I haven't read all the comments to that video but I did see this from a guy named Noah Hornberger.

 

At Pixar (I was a shading TD) they render in 32 bit and tone mapping is done later. Their tools can create accurate bounced light, but everything is lit 'artistically' so each shot may have 20-30 lights in it. Characters have their own lights too. The thing that I thought was kind of crazy was that every shot gets broken out into it's own file, so the lighting has to be done for each shot separately. You cannot go in and edit the lighting for an entire sequence or set, after a certain stage of production.

 

The underlying idea here is that 'realism' is rarely the target... unless you are trying to match real with unreal and even there we may run into problems because the real may appear unreal.
The target is more often than not one that someone will target through an artistic filter as they say... that's the look I want!
As for lighting in A:M the first an perhaps most important decision we can make when concerning ourselves with higher dynamic range and contrasts is to make sure we are using the EXR image format as it is the only one that will store that data. I'm no expert but I'd say Targa would be the next best format. Importantly, that doesn't need to be the end of the pipeline... we can temporarily use EXR to gain the advantage of linear color workflow and high dyncamic range and then we can convert to other formats where we target specific looks artistically.
Link to comment
Share on other sites

  • Hash Fellow
Tone mapping

 

that's a good word for it.

 

In real film they used to do something called "timing" or "color timing" because color correction had something to do with timing how much light the film got and how long it was developed for different contrast treatments.

 

There's a process they had to get a very blown out look that was different that just over-exposure but they had to do it by bleaching the original camera negative. That would be scary.

Link to comment
Share on other sites

  • Admin

Kevin,

It just occurred to me that if you are wanting to work in a more controllable color environment there are free solutions available to do just that and they can work with A:M in that the initial imagery is created in A:M but any subsequent change is managed in dedicated locations optimized for that work.

 

Specifically I am talking about Blackmagic's Fusion and Davinci Resolve.

Resolve was first and foremost a Color Management software before the recent addition of Non Linear Editing tools was added and of course it was the industry standard.

So Resolve is highly recommended for such tasks.

Fusion is being more fully integrated with Resolve with every update but even now it has most of the basic tools for storing and maintaining accurate color... it doesn't have all the management stuff... because that's what Davinci is for... but even there a lot can be used back and forth between the two applications. (There are some excellent videos that cover that)

 

I'm attaching a screen shot of some of the color spaces available just via Open Color IO (OCIO) which is significant.

 

 

The primary task (besides just learning color management) then falls to how best to move through A:M to achieve the ideal color and lighting output.

But even there Fusion and Davinci should be able to assist because of how Fusion can be used to manipulate composited images and relight scenes.

 

If lighting and color management and better control is desired you should definitely check Fusion and Davinci out.

Because Blackmagic is first and foremost a real world camera company they have a solid grasp on the technology and a vested interest in being accurate.

ColorSpace.jpg

Link to comment
Share on other sites

This is probably a subject for a different thread, but here goes.

 

It's true that large studios like Pixar can afford to light every scene to obtain their artistic vision using many lights.

But I think that it is not efficient or realistic to attempt this for large projects as an individual. Most of

Us don't have a lighting department which is what it takes to pull that off in a realistic amount of time.

We are in a different era now where tools do exist to obtain faster and more realistic results.

As Robert said, radiosity is possible in AM, but takes a long time to render. That is true only because they haven't implementing a new render engine. AM has not kept up with the industry's changes unfortunately. For the individual artist relying on tools for efficiency to meet deadlines with quality that competes......well, that hurts bunches.

Ahhhhh......forgive me. I will stop here. Its just frustrating to struggle obtaining the Results needed in an acceptable time frame.

Link to comment
Share on other sites

  • Hash Fellow

I presume cycles is faster but he was never able to show us any more than a speckly preview in real time. It still takes a long time to get finished result. Last time I tried a cycles demo it was very slow and pokey.

 

And none of the beauty shots he showed were something that an amateur did with one light.

 

For your Lego project, I'd distribute the sets with lighting set up already.

Link to comment
Share on other sites

  • Admin

Ahhhhh......forgive me. I will stop here. Its just frustrating to struggle obtaining the Results needed in an acceptable time frame.

 

Which is why I suggest augmenting A:M with other tools.

Especially those tools that A:M has never had and those we shouldn't expect to see.

Two things in particular come to mind that specifically fit that category... color management and video editing.

Some of that can be done in the course of standard operating procedure directly in A:M but A:M is not specifically designed for that.

Unless someone really surprises me A:M is never going to be a color management system.

 

To suggest anything specific I'd have to know more about the specific frustrations and obstacles you are facing.

I do know that a ton of things can be done in post... compositing and such... so that alone can save many a frustration.

 

Who here has exported out a file from A:M and lit it in Keyshot?

Probably not many because solutions don't always come cheap.

Still, that kind of solution may be exactly what is required to compete.

I suppose that may depend on who it is we compete with.

Link to comment
Share on other sites

1. Keeping everything in a 1.0 gamma until the final image is best (the renderer works in 1.0 gamma), so, render to OpenEXR files. This will improve your colors and lighting tremendously. An explanation of Linear Workflow is here: https://greyscalegorilla.com/tutorials/what-is-linear-workflow-and-how-can-it-help-your-renders-look-better/

 

2. Use the "Desired Gamma" setting to adjust your quick renders so that you can get the look you want easier. An explanation video is here: https://www.hash.com/forums/index.php?showtopic=47763&p=409439

 

3. You can use the "Attenuation" setting on any light to adjust the falloff. An explanation is here: https://www.hash.com/forums/index.php?showtopic=3749&hl=light+attenuation

Here is another explanation: https://developer.valvesoftware.com/wiki/Constant-Linear-Quadratic_Falloff

Set to 100 is Quadratic, 50 is Linear and 0 is Constant.

 

4. Use Krita to paint your OpenEXR textures and convert renders to 8bit sRGB, Blackmagic Fusion to composite and convert image sequences from OpenEXR 1.0 gamma to sRGB 8bit 2.2 gamma image sequence or video file.

 

5. As has been stated in this thread, there is also the option of using Radiosity for lighting.

 

You can get really good looking renders out of the A:M renderer...it has been done. That guy makes a lot of incorrect statements that are corrected in the comments.

 

Hope that helps.

  • ____ 1
Link to comment
Share on other sites

 

Ahhhhh......forgive me. I will stop here. Its just frustrating to struggle obtaining the Results needed in an acceptable time frame.

 

Which is why I suggest augmenting A:M with other tools.

Especially those tools that A:M has never had and those we shouldn't expect to see.

Two things in particular come to mind that specifically fit that category... color management and video editing.

Some of that can be done in the course of standard operating procedure directly in A:M but A:M is not specifically designed for that.

Unless someone really surprises me A:M is never going to be a color management system.

 

To suggest anything specific I'd have to know more about the specific frustrations and obstacles you are facing.

I do know that a ton of things can be done in post... compositing and such... so that alone can save many a frustration.

 

Who here has exported out a file from A:M and lit it in Keyshot?

Probably not many because solutions don't always come cheap.

Still, that kind of solution may be exactly what is required to compete.

I suppose that may depend on who it is we compete with.

 

Rodney. I have several tools that would be great for this purpose if A:M exported more than one material group either in .3ds or .obj.......HOWEVER,

when I import an A:M exported model(obj or 3ds) it contains only one "Blanket" map on it.

 

THIS RESULTS in not being able to place the other apps materials onto individual parts of the resulting model. So

you cannot utilize the Physically based materials included in that App. I don't understand why this is, because .obj's/ .3ds files from other apps

do import group areas for this purpose. SO that route gets shot down.

 

IF someone could successfully export a compatible .obj or .3ds that contained individual material groups on individual parts, then

that would be a great thing. BUT I haven't been able to get that to work. It makes one map for the entire model instead.

Link to comment
Share on other sites

  • Hash Fellow

Is the problem not getting groups or not getting maps?

 

If I make a model in A:M, create three groups on it ("Top", "Middle", "Bottom"), and export to OBJ, the group names and definitions are contained in a .MTL file that is written along with the .OBJ

 

If I look at the MTL file in a text editor, the group names are indeed there

 

MTLFile.JPG

 

 

I think the problem is not that A:M is not exporting the groups but that the target application is not reading them in correctly.

 

Tell me if I have completely misunderstood what you are trying to do.

 

Link to comment
Share on other sites

Either one I think would work.

 

Lumion for instance will open a sketchup file with color area groups.

 

Lumion will also open up a Blender exported .3DS with color groups.

 

But it will not open an A:M exported .3DS with color groups.

 

I contacted Lumion a while back concerning this and they wouldn't put any time into it.

 

So it could be their issue possibly. But what's the difference between the sketchup/ blender exports vs Animation Master's??

Link to comment
Share on other sites

  • Hash Fellow

 

But what's the difference between the sketchup/ blender exports vs Animation Master's??

 

Make a very simple model with the same groups in both, then open their OBJ exports up in a text editor and the differences will probably be apparent.

Link to comment
Share on other sites

  • Admin

Just to rule it out... with regard to OBJ...

 

Many programs will fail to attach images because the image is of a given format.

For instance, some programs (I think Sketchfab) will not recognize .bmp.

Well... bmp is the primary image format used in exported OBJ from A:M.

So... problem.

The fix there is to open the .MTL file and change the referenced name to a suitable image format (like .jpg) and then...

Convert the .bmp to .jpg.

Then Sketchfab will like it.

 

A lot can go wrong with any importer or exporter but in all cases they only will do what someone has directed.

If the problem is known. It can be fixed.

Link to comment
Share on other sites

  • Hash Fellow

I did a test with OBJ export and it retained the original JPG format. It didn't convert either the file or the name to BMP.



Just in case you missed it, I'm repeating this... this is the fastest way to find out what is going wrong:

 

But what's the difference between the sketchup/ blender exports vs Animation Master's??



Make a very simple model with the same groups in both, then open their OBJ exports up in a text editor and the differences will probably be apparent.

 

Link to comment
Share on other sites

  • Admin
I did a test with OBJ export and it retained the original JPG format. It didn't convert either the file or the name to BMP.

 

Hmmm... I'll have to check. Perhaps that was with baked textures or a derivative from a subsequent conversion.

Some formats definitely won't work... for instance, I don't think I've every seen an OBJ file reference an .EXR file.

Doesn't mean it couldn't if the receiving program will recognize that.

 

I think somewhere else in the forum I linked to the OBJ spec.

Way back when I was delving into the format and learned a lot about it.

Things I've largely forgot because I didn't have much need.

 

Here's a link that contains some useful information:

http://www.martinreddy.net/gfx/3d/OBJ.spec

 

And another:

https://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf

 

 

 

P.S. Out topic has changed so perhaps it needs to be retitled or branched into another topic?

Link to comment
Share on other sites

 

I did a test with OBJ export and it retained the original JPG format. It didn't convert either the file or the name to BMP.

 

 

 

Just in case you missed it, I'm repeating this... this is the fastest way to find out what is going wrong:

 

 

But what's the difference between the sketchup/ blender exports vs Animation Master's??

 

Make a very simple model with the same groups in both, then open their OBJ exports up in a text editor and the differences will probably be apparent.

 

 

 

I didn't miss it. The files from other Apps like blender look like an alien language. So I can't tell what's going on.

Link to comment
Share on other sites

  • Admin
The files from other Apps like blender look like an alien language. So I can't tell what's going on.

 

When exporting from many applications there is an option to create binary or ascii output.

The binary won't be human readable.

 

This may not be a showstopper because that same file can be converted again but... it is getting filtered through a converter which has to make assumptions and equivalencies which will have a varying degree of accuracy depending on the tool used to define what accuracy is.

 

I note that MeshLab... last official update released back in Dec 2016 has had 210 updates since that release so.. if you or someone you know can build that it will contain a lot of fixes designed to meet more current needs. MeshLab does a pretty decent job of converting. (I mention this here because Meshlab can get resolve a lot of problems when they are encountered).

Link to comment
Share on other sites

  • Hash Fellow

P.S. Out topic has changed so perhaps it needs to be retitled or branched into another topic?

 

 

I started to do it but it says long posts will be compressed without tags and I figured that would turn all the quotes in to wall-of-text. :facepalm:

Link to comment
Share on other sites

  • Admin

Wouldn't let me upload the 3ds file here.....wonder why??? Hmmmm

 

LOL How many forums do you frequent that allow uploading of 3DS files?
Silly human.
As Robert suggests any zip file can be uploaded.
Edited by robcat2075
missing word added
Link to comment
Share on other sites

  • Hash Fellow

Robert,

 

I sent that file to your email.

here is a zipped version

 

attachicon.gifcolor_cube_Blender.zip

 

That is only one file and it's not in ASCII text format and it's not OBJ.

 

3Ds isn't going to help us.

 

We need to work with OBJ because that can be a text file.

 

I need the four the four files I listed and I need them in ASCII text.

 

See how they have readable text and readable formatting...

 

example OBJ:

# OBJ - Exported from Animation Master
# 1OBJ

mtllib CYL.mtl
o CYL.OBJ
v 6.76197 21.8464 0
v 4.79586 21.8464 4.79586
v 4.24249 15.8275 4.24249
v 5.98175 15.8275 0
v 3.68912 9.80858 3.68912
v 5.20152 9.80858 0
v 8.06357e-08 21.8464 6.76197
v 7.13316e-08 15.8275 5.98175
v 6.20275e-08 9.80858 5.20152
v 4.24249 15.8275 -4.24249
v 4.79586 21.8464 -4.79586
v 4.51609e-07 15.8275 -5.98175
v 5.10515e-07 21.8464 -6.76197
v 3.68912 9.80858 -3.68912
v 3.92704e-07 9.80858 -5.20152
v -4.24249 15.8275 -4.24249
v -4.79586 21.8464 -4.79586
v -5.98175 15.8275 -9.03218e-07
v -6.76197 21.8464 -1.02103e-06
v -3.68912 9.80858 -3.68912
v -5.20152 9.80858 -7.85407e-07
v -4.24249 15.8275 4.24249
v -4.79586 21.8464 4.79586
v -3.68912 9.80858 3.68912
# 24 verticies

vt 0.00000 1.00000
# 1 texture coordinates


g default
s 1
usemtl UnKnown0
f 1/1/1 2/1/2 3/1/3 4/1/4
f 4/1/4 3/1/3 5/1/5 6/1/6
f 2/1/2 7/1/7 8/1/8 3/1/3
f 3/1/3 8/1/8 9/1/9 5/1/5
f 1/1/1 4/1/4 10/1/10 11/1/11
f 11/1/11 10/1/10 12/1/12 13/1/13
f 4/1/4 6/1/6 14/1/14 10/1/10
f 10/1/10 14/1/14 15/1/15 12/1/12
f 13/1/13 12/1/12 16/1/16 17/1/17
f 17/1/17 16/1/16 18/1/18 19/1/19
f 12/1/12 15/1/15 20/1/20 16/1/16
f 16/1/16 20/1/20 21/1/21 18/1/18
f 19/1/19 18/1/18 22/1/22 23/1/23
f 23/1/23 22/1/22 8/1/8 7/1/7
f 18/1/18 21/1/21 24/1/24 22/1/22
f 22/1/22 24/1/24 9/1/9 8/1/8
# 16 polygons


example MTL:

newmtl UnKnown0
Ns 200
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
d 1.000000
Ni 1.000000
sharpness 1.000000

If it looks like this, it's not ASCII text...

TextEditor.JPG

Link to comment
Share on other sites

 

Wouldn't let me upload the 3ds file here.....wonder why??? Hmmmm

 

LOL How many forums do you frequent that allow uploading of 3DS files?
Silly human.
As Robert suggests any zip file can be uploaded.

 

 

I'm not the best Forum user....you are correct. I'm trying to get better.

Link to comment
Share on other sites

 

Robert,

 

I sent that file to your email.

here is a zipped version

 

attachicon.gifcolor_cube_Blender.zip

 

That is only one file and it's not in ASCII text format and it's not OBJ.

 

3Ds isn't going to help us.

 

We need to work with OBJ because that can be a text file.

 

I need the four the four files I listed and I need them in ASCII text.

 

See how they have readable text and readable formatting...

 

example OBJ:

# OBJ - Exported from Animation Master
# 1OBJ

mtllib CYL.mtl
o CYL.OBJ
v 6.76197 21.8464 0
v 4.79586 21.8464 4.79586
v 4.24249 15.8275 4.24249
v 5.98175 15.8275 0
v 3.68912 9.80858 3.68912
v 5.20152 9.80858 0
v 8.06357e-08 21.8464 6.76197
v 7.13316e-08 15.8275 5.98175
v 6.20275e-08 9.80858 5.20152
v 4.24249 15.8275 -4.24249
v 4.79586 21.8464 -4.79586
v 4.51609e-07 15.8275 -5.98175
v 5.10515e-07 21.8464 -6.76197
v 3.68912 9.80858 -3.68912
v 3.92704e-07 9.80858 -5.20152
v -4.24249 15.8275 -4.24249
v -4.79586 21.8464 -4.79586
v -5.98175 15.8275 -9.03218e-07
v -6.76197 21.8464 -1.02103e-06
v -3.68912 9.80858 -3.68912
v -5.20152 9.80858 -7.85407e-07
v -4.24249 15.8275 4.24249
v -4.79586 21.8464 4.79586
v -3.68912 9.80858 3.68912
# 24 verticies

vt 0.00000 1.00000
# 1 texture coordinates


g default
s 1
usemtl UnKnown0
f 1/1/1 2/1/2 3/1/3 4/1/4
f 4/1/4 3/1/3 5/1/5 6/1/6
f 2/1/2 7/1/7 8/1/8 3/1/3
f 3/1/3 8/1/8 9/1/9 5/1/5
f 1/1/1 4/1/4 10/1/10 11/1/11
f 11/1/11 10/1/10 12/1/12 13/1/13
f 4/1/4 6/1/6 14/1/14 10/1/10
f 10/1/10 14/1/14 15/1/15 12/1/12
f 13/1/13 12/1/12 16/1/16 17/1/17
f 17/1/17 16/1/16 18/1/18 19/1/19
f 12/1/12 15/1/15 20/1/20 16/1/16
f 16/1/16 20/1/20 21/1/21 18/1/18
f 19/1/19 18/1/18 22/1/22 23/1/23
f 23/1/23 22/1/22 8/1/8 7/1/7
f 18/1/18 21/1/21 24/1/24 22/1/22
f 22/1/22 24/1/24 9/1/9 8/1/8
# 16 polygons


example MTL:

newmtl UnKnown0
Ns 200
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
d 1.000000
Ni 1.000000
sharpness 1.000000

If it looks like this, it's not ASCII text...

attachicon.gifTextEditor.JPG

 

obj isn't going to help me either....it needs to be a .3DS file. I don't think obj is going to carry the info.

Link to comment
Share on other sites

  • Hash Fellow

Do this

 

Here is lathed cylinder exported as OBJ from A:M

 

TestCyl.zip

 

 

Load it into Blender

 

Make a Group on the top half and make it Yellow and name it "Yellow"

Make a Group on the bottom Half and make it 50% gray and name it "Gray"

Save the new model as a native Blender file (if it's asking to subdivide anything, don't let it)

 

Close Blender

 

Reopen Blender and reload the Blender version

Export that to OBJ with a new name (if it's asking to subdivide anything, don't let it)

 

Send me the new OBJ and MTL files

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...