Like pretty much every IC without specially designed over-voltage tolerances, the 74HC595's input voltage level has a maximum of VCC or VCC + 0.3v. Powering the 74HC595 from 3v is okay, but directly connecting the Arduino's 5v outputs to the 74HC595 at 3v will not be good. A level shift as @angelatlarge has shown would work.
That said, the other thing is that the IC does not pass along the voltage from the inputs to the outputs. While it's logical diagram does not show any transistor/mosfet used, it does have buffered outputs. Outputs are referenced to the 74HC595's VCC and GND. For example, at 4.5v VCC, the Logic Level High only needs to be 2.4v (typical) to be a level high, but the output will still be 4.32v Typical.
So, you can power the 74HC595 from 3v, use a voltage shifter to bring the inputs to the 3v level, and connect your leds that way. But you would still want resistors on the leds to control any current.
In fact, using the resistors will make powering the 74HC595 at 3v AND using the voltage divider moot. The resistors should be calculated the same way you would if you were directly connecting a led + resistor to a battery.
Note this schematic:
Powered from 5v, considering each led, as most standard LEDs go, will be anywhere between 2 to 3.5 Volts at 20mA forward current, means there will be 3 to 1.5v in excess. The resistors will, when calculated for a (5v Source Voltage - LED Forward Voltage Drop) / LED Current, will "Take up" the remanding voltage, while setting that current. Same applies for LED Matrix on the 74HC595 as well, except the location of the resistor would vary and all. You haven't told us what type of matrix you want.